所以我只想提交一個表單,當使用ajax從數據庫驗證一個條件時。如果條件爲真,即如果用戶不是居民,則使用preventDefault()
方法,但ajax successs function
中的變量設置爲true,preventDefault()
被調用,但是,執行此操作時,表單始終提交。即使異步設置爲false,它也不會等待ajax完成。 這是代碼。如何讓表單在提交前等待ajax完成?
$('#button').click(function(e) {
if ($('#ca_resident').prop('checked') == true) {
amount=$('#user-amount').val().replace(/[,]/g,"");
project_name=$('#project_name').val();
var not_resident = false;
$.ajax({
url: '/main/verify_residence/',
type: 'POST',
aysnc: false,
data: {
value: amount,
name: project_name
},
success: function(data){
$("#verify_residence").html(data);
not_resident = true;
},
dataType: 'html'
});
}
if(not_resident){
e.preventDefault();
}
});
阻止默認調用AJAX之前和'ajax.success'然後你可以'form.submit()' – Vogel612
嘗試返回假;而不是e.preventDeafult()。 –
@ Vogel612我曾嘗試過這樣做。這可以防止表單在任何情況下提交。表單應提交時,用戶不失敗居住檢查 – user2488801