我想阻止用戶提交兩次對話框。防止jQuery對話框提交兩次
這裏是我的代碼提交:
$('form', dialog).submit(function() {
if (dialogSubmitted) { return false; }
dialogSubmitted = true;
...
...
});
哪裏dialogSubmitted是表示如果表單已經提交的變量。問題是它不起作用。當我打開對話框並按Enter兩次(快速)表單提交兩次。
有什麼想法?
謝謝。
UPDATE
這裏是另一個企圖也失敗了,當我按下回車鍵兩次非常迅速:
$('form', dialog).one('submit', function (evt) {
evt.preventDefault();
$(this).on('submit', function (evt) {
evt.preventDefault();
});
$.post($(this).attr('action'), $(this).serialize(), function (data, status) {
$('#my-modal').modal('hide');
...
...
}).error(function (error, status, a, b) {
$('.modal-body p.body').html(error.responseText);
writeError('msgError', pStopIndex.validationFailed);
});
// Unbind form submitting
$('form', dialog).unbind();
return false;
});
正如你所看到的,我做阿賈克斯後(代替經典表單提交)。也許問題在那裏?
這裏是谷歌瀏覽器痕跡的捕捉:
我們可以看到有2個職位。只有當我快速按下確認鍵兩次或快速點擊提交按鈕兩次時纔會發生。
有什麼想法?謝謝。
什麼禁用提交按鈕之前前往POST'$(「#按鈕」)ATTR(「禁用」,「禁用」);'我做到這一點,它比存儲變量becasue的更好你正在經歷的原因。禁用按鈕,你不能快速按兩次。 – ppumkin 2012-04-26 11:25:59
@ppumkin:好主意,但如果用戶通過按回車鍵提交?即使提交按鈕被禁用,用戶可以通過按回車鍵提交?正確? – Bronzato 2012-04-26 11:33:13
@bronzatio ... ummmmmm。不知道哈哈:)從來沒有嘗試過。 – ppumkin 2012-04-26 12:11:20