我在找什麼:使用required =「true」進行先天html5表單驗證的方法,如果用戶點擊「Submit」按鈕,首先會發生的是自動的HTML 5驗證,它會檢查用戶是否提供「用戶名」。如果不是,那麼它顯示醜陋的錯誤泡泡。html5 validate form with required =「true」and custom check
如果提供了,但是,我再有對數據庫檢查,如果用戶名存在,我自己的自定義驗證。如果是,則返回true(允許提交),否則返回false。發生了什麼:表單正在提交。這就像它不等待成功回調函數返回是否應該提交真/假。
我希望這是很清楚!下面的代碼:
HTML:
<form>
<input type="text" required="true" id="username" />
<button type="submit">Submit</button>
</form>
JS:
$("form").submit(function() {
$.ajax({
url: 'usernamechecker.php?username=' + $("#username").val(),
success: function(resp) {
if (!resp.UsernameExists) {
return true; // allow form submission
}
return false; // do not allow form submission
}
});
});
這可能是一個非常糟糕的主意,因爲這會導致瀏覽器在等待響應時完全凍結。在很少的情況下,同步ajax是有意義的(在我個人的經驗中,沒有,但我會給出這個想法的好處)。 – Pointy
我很喜歡這個想法。但是,在成功回調中,我仍然有「回報真實」嗎? –
是的。這回答了他的問題,但他肯定需要設置超時以及可能是加載圖形。 –