尝试取消绑定一个div,所以在单击它之后它将无法工作,直到我再次绑定它,但它没有解除绑定,我做错了什么?
$('#envio').click(function() {
$('#mensagemenvio').html('<span style="color: blue; font-size: 10px">Enviando</span>');
$(this).unbind('click');
$('#saque').submit(function (){
$.ajax({
type: 'POST',
url: 'enviar.php',
data: $('#sacar_btc').serialize(),
success: function (e){
$('#mensagemenvio').html(e);
}
});
return false;
});
});
<div style="width: calc(70% - 60px); height: 25px; line-height: 25px;" class="envia" id="envio">
<input id="envia" class="submit" type="submit" value="Confirmar" name="command"/>
</div>
我已尝试使用off()
代替unbind()
,并尝试更改我的jQuery版本。
我想要的是在php脚本运行时禁用提交按钮,它是一个慢速脚本,大约需要5秒才能完成,因此用户无法提交两次。
答案 0 :(得分:1)
在单击处理程序中,绑定一个函数以在表单提交上运行。
你不取消绑定表单提交处理程序。
我怀疑你真正想要做的是创建一个运行Ajax的点击处理程序,而不是将处理程序绑定到表单提交。然后你可以取消绑定点击处理程序,它会按你的意图行事。
答案 1 :(得分:0)
您只需添加一个标记即可表明正在提交的内容如下:
window.isSubmitting = false;
$('#envio').click(function() {
if (window.isSubmitting) {
return false;
} else {
window.isSubmitting = true;
}
$('#mensagemenvio').html('<span style="color: blue; font-size: 10px">Enviando</span>');
$('#saque').submit(function (){
$.ajax({
type: 'POST',
url: 'enviar.php',
data: $('#sacar_btc').serialize(),
success: function (e){
window.isSubmitting = false;
$('#mensagemenvio').html(e);
},
error: function() { // important the error handler to enable the event
window.isSubmitting = false;
}
});
return false;
});
});