在bootstrap模式中,当用户按Enter键时,会触发ajax调用,
$('#amount').keypress(function(event){
if(event.which==13) {
$( "#final" ).trigger( "click" ); // this triggers the ajax call
}
});
但是,如果用户长时间按下回车键,则会意外地进行过多次提交,因此会在数据库中输入不需要的记录。如何阻止这种意外行为?在这种情况下是否有最佳做法?
答案 0 :(得分:2)
我不知道这是不是最好的做法,但我会这样做
window.alreadySubmit = false;
$('#amount').keypress(function(event){
if(event.which==13 && !alreadySubmit) {
window.alreadySubmit = true;
$( "#final" ).trigger( "click" ); // this triggers the ajax call
}
});
然后在您的ajax成功回调中将windowd.alreadySubmit
变量重置为false
alernatively你可以设置一个超时,如下所示:
var myTimeout = 3000; //ms = 3 seconds
window.alreadySubmit = false;
$('#amount').keypress(function(event){
if(event.which==13 && !alreadySubmit) {
window.alreadySubmit = true;
$( "#final" ).trigger( "click" ); // this triggers the ajax call
setTimeout(function(){ window.alreadySubmit = false; }, myTimeout);
}
});