0
我有這樣的形式:是否有一個事件可以在表單提交後和表單經過HTML5驗證之後發生?
<div id="account-form">
<form action="/Account/Login" id="login-form" class="form" method="post">
<div id="input-fields">
<div>
<input class="data-entry medium-margin" id="UserName" name="UserName" placeholder="Username (or guest)" required="required " size="25" type="text" value="">
</div>
<div>
<input class="data-entry medium-margin" id="Password" name="Password" placeholder="Password (or guest)" required="required " size="25" type="password">
</div>
<div>
<input class="data-entry inline-checkbox" id="RememberMe" name="RememberMe" type="checkbox" value="true"><input name="RememberMe" type="hidden" value="false">
<p style="margin-top: 0;">Remember me?</p>
</div>
</div>
<button class="data-entry medium" id="login" type="submit">Login</button>
<button class="data-entry medium" id="register" type="button" onclick="location.href='/Account/Register'">Register</button>
</form>
</div>
與此javascript禁用後的形式輸入提交。
<script type="text/javascript">
(function() {
document.getElementsByClassName('form')[0]
.addEventListener("submit", function() {
var inputs = document.getElementsByClassName("data-entry");
for (i = 0; i < inputs.length; i++) {
inputs[i].disabled = true;
}
})();
</script>
當我輸入登錄數據,然後點擊提交輸入被禁止,並提交驗證失敗說,輸入字段不填寫。
有什麼方法可以在HTML5驗證後禁用輸入字段?
感謝您的建議。你提到「一旦提交事件處理已完成」。這是否意味着在服務器返回了對提交的響應或剛提交驗證完成後? – Melina
@Melina:對於常規的「web 1.0」表單,提交的結果實際上會取代當前頁面,因此有關收到響應後會發生什麼的討論是無稽之談(到那時當前世界已經結束)。不知道這是否在規格說明,但看着瀏覽器的行爲我懷疑是提交仍然是異步的,你可以在等待回覆時與頁面交互。對於ajax post來說,在提交之後和收到答覆之前立即完成禁用。 – 6502