双击时仅提交一次
Submit only once on double click
可能的重复项:
检测到
双击事件时需要取消单击/鼠标向上事件 防止双击"提交"按钮
我有以下功能
$("#btnSubmit").click(function(){
$("#btnSubmit").attr("disabled", "disabled");
....make ajax request
$("#btnSubmit").removeAttr("disabled");
}
问题是我想处理双击的第一次单击。或单击.因为当用户双击时,它确实会运行该功能两次。如果我使用 .one(),它只会处理一次点击。但是我也想处理双击,但只处理一次.有什么解决方案?
使用
dblclick()
而不是click()
阅读更多 关于 .dblclick()
您的代码应如下所示
$("#btnSubmit").dblclick(function(){
$("#btnSubmit").attr("disabled", "disabled");
$("#btnSubmit").removeAttr("disabled");
});
您可以使用标志
var alreadyClicked = false;
$("#btnSubmit").click(function(){
if(alreadyClicked) {
alreadyClicked = false;
return false;
} else {
alreadyClicked = true;
$("#btnSubmit").attr("disabled", "disabled");
$("#btnSubmit").removeAttr("disabled");
}
});
设置一个哨兵变量以防止在 ajax 请求完成之前对进一步的点击进行操作:
var clicked = false;
$("#btnSubmit").click(function(){
if (clicked) {
return;
} else {
clicked = true;
}
$.ajax({
success: function() {
clicked = false;
});
});
我的解决方案将在按下按钮时停止双击检查变量。
发生的情况是,单击变量用作检查函数当前是否正在运行。
var click = false;
$("#btnSubmit").click(function(){
if (click == false) {
click = true;
$("#btnSubmit").attr("disabled", "disabled");
//make ajax request
$("#btnSubmit").removeAttr("disabled");
click = false;
}
}
相关文章:
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- 通过一次提交保存来自多个 ASP.NET Telerik 网格的更改
- 双击时仅提交一次
- jQuery在表单仅提交一次后加载函数
- 一次提交两个 HTML 表单,一个在当前窗口中,一个在新窗口中
- 禁用/启用提交按钮,并在加载时每 1 秒运行一次此 JavaScript
- 一次提交即可提交多个表单
- 一次提交多个表单
- HTML/JQuery:按钮在根本不应该提交的时候提交一次
- ExtJS-3,Ext.grid.GridPanel,多行复选框:如何一次提交所有选中的项目
- 一次提交多个表单将中止除最后一个表单外的所有表单提交
- 即使用户一次又一次地输入同一封电子邮件,代码也不会停止提交表单
- 提交表单后仅刷新网页一次
- 我如何才能得到一个表单提交只有一次隐藏的值已经从谷歌地理编码服务更新
- AJAX在一次提交中发布来自克隆表单的数据
- 表单插件是提交所有的形式在一次
- 表单提交是提交一次,之后每次加倍
- 一次提交两份表格
- Paypal按钮使用AngularJS一次提交多个项目
- 如果上一次提交仍然有效,如何拒绝HTML表单提交