我正在使用AJAX調用來驗證表單中的電子郵件字段。這是必要的,因爲我需要驗證電子郵件地址是否已被使用。 我的第一次嘗試導致ajax請求無限循環後,我發現this solution這似乎工作正常。使用AJAX進行表單驗證需要兩次點擊才能提交
除了:我需要在表單實際提交之前點擊兩次提交。 有人知道爲什麼嗎?
這是我的js代碼小例子:
$('form').submit(function(event){
event.preventDefault();
$.post('/echo/json', {'mail': $('#test').val()}, function(data){
//decide if valid or not based on data
//we assume it's valid an want to submit the form now!
$('form').unbind().submit();
//we should only see this for a very short time
$('.info').text('should have already submitted');
}, 'json');
});
這裏是一個jsfiddle。編輯: 對不起,我想我不是很清楚。我插入了一些註釋來澄清: 我想使用AJAX請求的響應來決定是否提交表單或不顯示錯誤,並顯示錯誤。不提交作品,但如果郵件地址有效,則需要點擊兩次提交才能實際提交。這個例子模擬了這種情況。
unbind()
是必要的,否則我創建一個無限循環($('form').submit(...)
將被再次調用)。 另外jQuery.post()是異步的,所以在成功處理程序內部調用event.preventDefault()
將無法工作,因爲表單已經被提交。
這正是我需要的,非常感謝! – Dave 2015-03-02 15:43:15