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方法等效。
CheckInfoAdd()方法如下:
如上,在return false后依旧没有停止提交,后来检查想起来在什么地方看到过需要在click事件中增加return,于是加上后,OK,解决了这个问题,后台事件多次触发的问题也解决了,但是却不知道是什么原理,所以大概查了下,详细说明可见如下链接,这个算是说的比较详细的。
这是修改后的代码:
/article/11556053.html
此处需注意的就是如下两个按钮中,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
相关文章推荐
- IOS Quartz 各种绘制图形用法---实现画图片、写文字、画线、椭圆、矩形、棱形等
- ios动画 calyer-旋转,缩放,裁剪,阴影,平移等
- jstack:分析linux下java程序占用CPU高
- Rust 1
- Android Toast.makeText用法
- 【练习题】解析URL中的路径和查询字符串
- GC调优在Spark应用中的实践
- java日志框架,Log4j配置全攻略
- 小Z的袜子(hose) - bzoj 2038 莫队算法
- Android——bootchart
- 跳转时让JSON请求并刷新
- session与cookie的区别【转】
- SharePoint 2013 on Azure 一些的用法
- jQuery事件传播,事件流
- golang发送xlsx文件到浏览器端
- Lanmitm — Android中间人攻击测试工具
- C语言的传值与传址调用
- xUtils框架介绍(二)
- swift中string操作
- Android中shape中的属性大全