我試圖讓 jQuery 事件僅在表單有效時觸發 - 不使用任何擴展。例如,我有一個電子郵件欄位:
<input type="email" class="form-control" id="email" placeholder="[email protected]" aria-describedby="emailHelp" name="email" maxlength="250" required>
在表格內。單擊提交按鈕后,將觸發此事件:
$("#submitForm").click(function() {
$("#spinnerSubmit").removeAttr('hidden');
});
但是,如果用戶沒有以正確的格式輸入正確的電子郵件,則該事件會觸發,但表單仍會等待電子郵件輸入。我可以以某種方式檢查表單是否經過瀏覽器驗證,而不使用任何過度殺傷擴展?還是我唯一的選擇是這個?
uj5u.com熱心網友回復:
大多數現有答案,特別是標記jQuery將指向您的 jquery 驗證。
HTML5 包括一些表單驗證,請參閱:https ://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Constraint_validation#constraint_validation_process
總之(該頁面),您可以呼叫checkValidityDOM 元素或表單,例如:
document.getElementById("myForm").checkValidity();
這是一個示例(jquery 僅用于事件/UI):
$("#submitForm").click(function() {
var isValid = document.getElementById("myForm").checkValidity();
$("p").text(isValid);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm">
<input type="email" class="form-control" id="email" placeholder="[email protected]" aria-describedby="emailHelp" name="email" maxlength="250" required>
</form>
<button type='button' id='submitForm'>click me</button>
<p>waiting for click</p>
您也可以使用$("#myForm")[0].checkValidity()但不使用該示例來避免對 jquery/DOM 的混淆,[0]或者使用 vanilla 進行 UI 更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/482988.html
標籤:javascript html jQuery 形式
上一篇:為什么html表單發送空資料?
