我在IE中有这个问题,有时我的表单提交两次。我知道点击按钮两次的问题,这不是问题。但对我来说,我只点击一次。我在数据库里查了我的记录,有两条记录。
<input type="button" value="Approve" name="btn_approve" id="btn_approve">
<input type="button" value="Reject" name="btn_reject" id="btn_reject">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.20.custom.min.js"></script>
<script>
$(document).ready(function () {
$("#btn_approve").click(function () {
// some validation before submitting the form
$("#my_form").submit();
});
});
</script>
防止按钮的默认行为:
<input type="button" value="Approve" name="btn_approve" id="btn_approve">
<input type="button" value="Reject" name="btn_reject" id="btn_reject">
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.20.custom.min.js"></script>
<script>
$(document).ready(function () {
$("#btn_approve").click(function (e) {
e.preventDefault();
// some validation before submitting the form
$("#my_form").submit();
});
});
</script>
假设#btn_approve
实际上是#my_form
内部的提交按钮,您通过.submit
触发表单提交,浏览器也正常提交。改变:
$("#btn_approve").on('click', function (e) {
$("#my_form").trigger('submit');
e.preventDefault();
});
我有同样的问题。当我将记录保存到数据库时,我会给它们加上时间戳。因此,如果为一个特定的唯一用户提交了一条记录,那么在2秒内,我就忽略重复的记录。这样我就不需要在客户端检查浏览器类型和兼容性,只需要在服务器端分别处理浏览器的问题。
'' Count the number of submissions, for the user, within the 2 seconds.
objRS.open "select count(*) as C FROM [ADS].[dbo].[VIP_USERS] where userid = '" & Trim(Request("USERID")) & "' and datediff(ss, created, GETDATE()) <= 2", Application("sConn")