Azh*_*har 1 .net javascript asp.net events onclick
我有一个表单,在提交按钮单击时在数据库中插入数据,但问题是当客户端多次单击该按钮时,它发送多个创建请求意味着同一时间的相同数据的多个按钮单击事件,这不是必须的.
当客户端第一次单击"提交"按钮时,我尝试禁用该按钮但在此之后它不会调用服务器单击事件处理程序,或者在禁用后不会触发服务器单击事件.
如何处理这个多次点击问题..
我使用以下代码禁用该按钮
<script type="text/javascript">
function checkAuth(obj)
{
if(Page_ClientValidate("ValidationGroupName"))
obj.disabled=true;
}
</script>
<asp:Button ID="btnSubmit" runat="server" Text="Submit"
OnClick="btnSubmit_click" OnClientClick="checkAuth(this)" CssClass="FormButton"
ValidationGroup="ValidationGroupName" />
Run Code Online (Sandbox Code Playgroud)
不要禁用该按钮,只是阻止第二次提交.
这个小脚本完成了这项工作,但它假定某个时刻有回发.
var formhandler = function() {
var submit, isSubmit = false;
submit = function(){
// flop and return false once by the use of operator order.
return isSubmit != (isSubmit = true);
};
return {
submit: submit
};
}(); // <-- use direct invcation to keep the internal variables "static"
Run Code Online (Sandbox Code Playgroud)
附上:
document.forms[0].onsubmit = formhandler.submit;
Run Code Online (Sandbox Code Playgroud)
要么
OnClientClick = "formhandler.submit()";
Run Code Online (Sandbox Code Playgroud)