Jquery 在不禁用按钮的情况下防止双击提交
我有一个应用程序,它使用提交按钮来查询Ajax调用。现在,如果用户点击太快,它会在按钮消失之前返回重复的结果。用户可以单击搜索图标将其带回来并进行更多搜索,因此我不想在使用后禁用它。这是我提交的代码Jquery 在不禁用按钮的情况下防止双击提交,jquery,Jquery,我有一个应用程序,它使用提交按钮来查询Ajax调用。现在,如果用户点击太快,它会在按钮消失之前返回重复的结果。用户可以单击搜索图标将其带回来并进行更多搜索,因此我不想在使用后禁用它。这是我提交的代码 function watchSubmit(){ $('.guidebox-search-form').submit(function(event){ $('.guidebox-search-results').empty(); ev
function watchSubmit(){
$('.guidebox-search-form').submit(function(event){
$('.guidebox-search-results').empty();
event.preventDefault();
var query = $(this).find('.guidebox-query').val();
getSearchDataFromApi(query, displaySearchData);
});
}
有没有一种简单的方法可以阻止doble单击此处,或者我应该重写它?您可以通过以下方法防止双重权限:
$(".guidebox-search-form").one("submit", Your function);
感谢这(.1)提交的工作应该只有一次。
希望对你有所帮助 您可以按如下方式更改代码:
function watchSubmit(){
$('.guidebox-search-form').submit(function(event){
$('.guidebox-search-results').empty();
event.preventDefault();
var query = $(this).find('.guidebox-query').val();
getSearchDataFromApi(query, displaySearchData);
$(this).off(event);
});
}
.off()将阻止同一元素的第二次执行事件要支持@toomanyredirects注释,单击该按钮后,必须在函数执行时禁用该按钮
$('.sample-button').click(function(event) {
var oElement = $(this);
oElement.prop('disabled', true); // disable button temporarily
$.when(watchSubmit()).then(function(event) {
oElement.prop('disabled', false); // enable button after method was successful.
});
});
如果您使用的是较低版本的jQuery,则可能需要使用:
$(this.attr('disabled',true);
$(this.attr('disabled',false)
希望这对您的情况有所帮助。您说不想在使用后禁用按钮,但为什么不能在使用后禁用它,并在
getSearchDataFromApi
响应返回后重新启用它?