日期:2014-05-16  浏览次数:20581 次

按钮上同时使用onClientClick()和onclick()时,onclick()不会被执行,即使onClientClick返回True
本帖最后由 mizchh 于 2013-05-28 11:28:52 编辑
ASPX代码


<asp:ImageButton ID="IMGBtn"  runat="server"  
OnClientClick='updatenum(50,60)'     
OnClick="txt_OnText" AutoPostBack="true"></asp:ImageButton>



JS代码

function updatenum(obj1, obj2) {
    if (obj2>0) {
        __doPostBack(obj1, obj2);
        alert('返回true');
        return true;
    }
    else {
        alert('返回false');
        return false;
    }
}



页面上已经弹出了‘返回true’,也就是说函数返回true了,为什么OnClick的服务器端事件一直不执行?
------解决方案--------------------
OnClientClick='return updatenum(50,60);' 
------解决方案--------------------
OnClientClick是客户端脚本,在客户端运行,点击后马上执行
OnClick是服务器端事件处理函数,在服务器端,在IIS中运行,执行postback,之后再运行。
 

可能因为OnclientCLick里面发生异常,或者返回了false。 

再者你可以去掉 alert('返回false');  这弹出就能执行成功了
------解决方案--------------------
引用:
OnClientClick='return updatenum(50,60);' 
    ++
------解决方案--------------------
你贴出来的代码没有return 啊
------解决方案--------------------
OnClientClick='txt_OnText'这个调用后台事件
OnClick="return updatenum(50,60)"这个调用js事件
------解决方案--------------------
_dopostback 这句代码好像和自动触发冲突了吧