我正在尝试使用我的表单上的回车键阻止双重提交,但我似乎无法在提交数据后重新启用按键。这是我的代码的一部分:
$(".adauga-clasa").submit(function() {
var adaugaClasa = $('input[type=text]', this);
adaugaClasa.keypress(function(event) { if (event.keyCode == '13') { return false; } });
$.ajax({
type: "POST",
url: "/clase/do-add",
data: dataString,
dataType: "json",
success: function(data) {
// this doesn't work
adaugaClasa.keypress(function(event) { if (event.keyCode == '13') { return true; } });
}
});
答案 0 :(得分:2)
你需要.unbind()
上一个事件处理程序(仍然绑定,并且在你的新处理程序之前仍然返回false ),如下所示:
adaugaClasa.unbind('keypress');
有了这个,也不需要添加新的keypress
处理程序,只需删除旧处理程序即可。
答案 1 :(得分:1)
为什么你没有布尔变量标志?
var form_submitted = False
在提交时将其设置为True,并在提交时进行检查。
答案 2 :(得分:0)
它不起作用,因为您没有取消绑定上一个功能。你只需添加一个新的。
您需要使用.unbind('keypress')
。