您的位置:首页 > 其它

button的click事件触发的提交问题

2015-06-12 13:43 337 查看
最近的项目中遇到一个问题,input(button)的onclick事件调用js方法之后,虽然在方法中写了return false,却依旧执行了onserverclick事件调用的后台方法,然后换成Asp:Button,写在OnClientClick事件中,也执行了OnClick事件。不仅是提交部分,在网络较慢的情况下,后台btnSubmit_ServerClick事件会多次触发,导致向数据库插入了多条资料。

此处需注意的就是如下两个按钮中,inptut(button)的onclick方法和Asp:Button的OnClientClick方法等效,onserverclick方法和OnClick方法等效。

<input type="button" id="btnSubmit" runat="server" value="確定" onclick="CheckInfoAdd();" onserverclick="btnSubmit_ServerClick" />
<asp:Button ID="btnSubmit" runat="server" Text="确定" OnClick="btnSubmit_ServerClick" OnClientClick="CheckInfoAdd();" />

CheckInfoAdd()方法如下:

function CheckInfoAdd() {
var txtCheckDate = $("#txtCheckDate").val();
var txtCheckStatus = $("#ddlStatus").val();
//var txtRemarks = $("#txtRemarks").val();
if (txtCheckDate && txtCheckStatus) {
__doPostBack("btnSubmit", "");
}
else {
alert("时间和状况不能为空!");
return false;//<span style="color:#ff0000;">here to 阻止提交</span>
}
}

如上,在return false后依旧没有停止提交,后来检查想起来在什么地方看到过需要在click事件中增加return,于是加上后,OK,解决了这个问题,后台事件多次触发的问题也解决了,但是却不知道是什么原理,所以大概查了下,详细说明可见如下链接,这个算是说的比较详细的。

这是修改后的代码:

<input type="button" id="btnSubmit" runat="server" value="確定" onclick="return CheckInfoAdd();" onserverclick="btnSubmit_ServerClick" />
<asp:Button ID="btnSubmit" runat="server" Text="确定" OnClick="btnSubmit_ServerClick" OnClientClick="return CheckInfoAdd();" />


/article/11556053.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: