$(document).ready(function(){
$("#enviar").click(function(e){
e.preventDefault();
//prevent run 2 or more times if the user clicks the button multiple times to send
$.post(url,{data:data1,data2:data2},function(rp){
});
});
});
如果用户反复点击按钮,则阻止发送2次“发布”,而不禁用提交按钮
答案 0 :(得分:2)
使用特殊类(例如:submitting
)作为标记来指示请求正在进行中:
$("#enviar").click(function(e){
e.preventDefault();
var btn = this;
// check if already present :
if ( $(btn).is('.submitting') ){
return;
}
// add it before request :
$(btn).addClass('submitting');
$.post(url,{data:data1,data2:data2},function(rp){
}).always(function(){
// remove it after completion or failure :
$(btn).removeClass('submitting');
});
});
答案 1 :(得分:1)
使用jQuery的.one事件:
$("#enviar").one("click", function() {
$.post();
});
来自文档:
将处理程序附加到元素的事件。处理程序已执行 每个元素最多一次
或者如果你想做一些额外的检查,使用开/关:
// Set up the initial bind on DOM ready
$("#enviar").on("click", doPost);
function doPost() {
// Unbind when it is clicked
$("#enviar").off("click", doPost);
// Do your post
$.post(url, {}, function() {
// You could bind again on success if you want
$("#enviar").on("click", doPost);
});
}