HTML表單驗(yàn)證可以通過(guò)JavaScript完成。
HTML表單通常用于收集用戶(hù)信息,例如姓名,電子郵件地址,位置,年齡等。
但是很可能某些用戶(hù)可能不會(huì)輸入您期望的數(shù)據(jù)。
為了避免對(duì)服務(wù)器資源造成不必要的壓力,您可以使用JavaScript在客戶(hù)端(用戶(hù)系統(tǒng))上驗(yàn)證表單數(shù)據(jù)。
在將輸入發(fā)送到Web服務(wù)器之前,由Web瀏覽器執(zhí)行客戶(hù)端驗(yàn)證。
輸入已發(fā)送到服務(wù)器后,服務(wù)器端驗(yàn)證由Web服務(wù)器執(zhí)行。
<div class="wrapper">
<h2>Create an account</h2>
<label for="username"><b>姓名</b></label>
<input type="text" placeholder="輸入用戶(hù)名" name="uname" id="username" required>
<label for="useremail"><b>Email</b></label>
<input type="email" placeholder="輸入Email" name="uemail" id="useremail" required>
<label for="userpwd1"><b>Password</b></label>
<input type="password" placeholder="輸入密碼" name="psw" id="userpwd1" required>
<input type="password" placeholder="確認(rèn)密碼" name="cpsw" id="userpwd2" required>
<p style="margin-top: 10px;">
<input type="radio" name="gender" id="female" value="female" checked><label for="female">女</label>
<input type="radio" name="gender" id="male" value="male"><label for="male">男</label>
</p>
<button type="submit">注冊(cè)</button>
</div>
<div class="footer">
<div>已經(jīng)有一個(gè)帳戶(hù)? <a href="#">登錄</a></div>
</div>
</form>
<script>
function validateForm() {
let name = document.getElementById("username").value;
let email = document.getElementById("useremail").value;
let pswd1 = document.getElementById("userpwd1").value;
let pswd2 = document.getElementById("userpwd2").value;
if(name == "") {
alert("Name must be filled out");
return false;
}
if(email == "") {
alert("必須填寫(xiě)電子郵件");
return false;
}
if(pswd1 !== "" || pswd2 !== "") {
if(pswd1 !== pswd2) {
alert("Password didn't match");
return false;
}
} else {
alert("密碼必須填寫(xiě)");
return false;
}
return true;
}
</script>測(cè)試看看 ?/?典型的驗(yàn)證任務(wù)是:
用戶(hù)是否填寫(xiě)了所有必填字段?
用戶(hù)輸入了有效數(shù)據(jù)嗎?
在此代碼中,如果輸入字段(用戶(hù)名)為空,此函數(shù)將警告消息并返回false,以防止提交表單:
function validateForm() {
let x = document.getElementById("uname").value;
if (x == "") {
alert("名稱(chēng)必須填寫(xiě)");
return false;
}
}提交表單時(shí)可以調(diào)用該函數(shù):
<form action="form-action.html" onsubmit="return validateForm()" method="POST"> <label for="uname">Name:</label> <input type="text" name="username" id="uname"> <input type="submit" value="Submit"> </form>測(cè)試看看?/?
JavaScript通常用于驗(yàn)證數(shù)字輸入。
請(qǐng)輸入1到10之間的數(shù)字:
JavaScript通常用于驗(yàn)證電子郵件地址。
請(qǐng)輸入有效的電子郵件地址:
JavaScript通常用于匹配密碼確認(rèn)。
HTML表單驗(yàn)證可以使用必填屬性自動(dòng)執(zhí)行:
<input type="text" name="demo" required>測(cè)試看看?/?
您可以使用javascript 在<input type="password">和<input type="text">之間進(jìn)行切換。
在密碼字段中輸入一個(gè)值,然后單擊“顯示密碼”按鈕:
HTML5引入了以下新的HTML屬性:
| 屬性 | 描述 |
|---|---|
| disabled | 指定應(yīng)禁用輸入元素 |
| max | 指定輸入元素的最大值 |
| min | 指定輸入元素的最小值 |
| pattern | 指定輸入元素的值模式 |
| required | 指定輸入字段需要一個(gè)元素 |
CSS3引入了以下新的CSS偽選擇器:
| 選擇器 | 描述 |
|---|---|
| :disabled | 選擇指定了“禁用”屬性的輸入元素 |
| :invalid | 選擇具有無(wú)效值的輸入元素 |
| :valid | 選擇具有有效值的輸入元素 |
| :optional | 選擇未指定“必需”屬性的輸入元素 |
| :required | 選擇指定了“必需”屬性的輸入元素 |
注意:客戶(hù)端驗(yàn)證不能代替或代替服務(wù)器端驗(yàn)證。即使用戶(hù)已經(jīng)驗(yàn)證了表單數(shù)據(jù),也應(yīng)始終在服務(wù)器端驗(yàn)證表單數(shù)據(jù),因?yàn)橛脩?hù)可以在其瀏覽器中禁用JavaScript。