我有以下 jQuery 代码来防止双击按钮。它工作正常。我Page_ClientValidate()
用来确保只有在页面有效时才能防止双击。[如果存在验证错误,则不应设置标志,因为没有回发到服务器已启动]
有没有更好的方法来防止在页面加载之前第二次点击按钮?
isOperationInProgress = yesIndicator
只有当页面导致回发到服务器时,我们才能设置标志 吗?event
在用户第二次点击按钮之前,是否有一个适合它的调用?
注意:我正在寻找不需要任何新 API 的解决方案
注意:这个问题不是重复的。在这里,我试图避免使用Page_ClientValidate()
. 我也在寻找一个event
可以移动代码的地方,这样我就不需要使用了Page_ClientValidate()
注意:我的场景中不涉及 ajax。表单将ASP.Net
同步提交到服务器。javascript中的按钮单击事件仅用于防止双击。表单提交是使用 ASP.Net 同步的。
当前代码
$(document).ready(function () {
var noIndicator = 'No';
var yesIndicator = 'Yes';
var isOperationInProgress = 'No';
$('.applicationButton').click(function (e) {
// Prevent button from double click
var isPageValid = Page_ClientValidate();
if (isPageValid) {
if (isOperationInProgress == noIndicator) {
isOperationInProgress = yesIndicator;
} else {
e.preventDefault();
}
}
});
});
参考资料:
@Peter Ivan 在上述参考文献中的注释:
重复调用 Page_ClientValidate() 可能会导致页面过于突兀(多个警报等)。