1. 程式人生 > >JavaScript進階(四)form表單校驗

JavaScript進階(四)form表單校驗

前言

      本章將學習表單的校驗,作為一個前面學習的總結!

方法

1.概念

我們知道,在學習HTML的時候,我們做了一個非常醜陋的表單,裡面有文字框、單選鈕、複選框等一系列表單元素。這些都是隨便填寫的,沒有加任何的校驗。也就是說正常情況下我們需要對錶單進行校驗,確保使用者輸入正確!

2.具體思路

1)回顧一下簡單的form表單的寫法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>form表單的學習</title>
	</head>
	<body>
		<form action="#" method="post">
			<h5>註冊資訊</h5>
			使用者名稱:<input type="text" name="username" id="username" value=""/><br/>
			性&nbsp;&nbsp;&nbsp;&nbsp;別:<input type="radio" name="sex" value="男" checked="checked"/>男<input type="radio" name="sex" value="女"/>女<br/>
			愛&nbsp;&nbsp;&nbsp;&nbsp;好:<input type="checkbox" name="hobby" value="足球" />足球<input type="checkbox" name="hobby" value="游泳"/>游泳
			<input type="checkbox" name="hobby" value="棋牌" />棋牌<br/>
			畢業院校:<select name="school" id="school">
						<option value="--請選擇--">--請選擇--</option>
						<option value="清華大學">清華大學</option>
						<option value="北京大學">北京大學</option>
						<option value="挖掘機技術學院">挖掘機技術學院</option>
					</select><br/>
			個人簡介:<textarea rows="3" cols="20" name="introduce" id="introduce"></textarea><br/>
			<input type="submit" value="提交"/>&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" name="" id="" value="重置" />
		</form>
	</body>
</html>

以上就是我們之前寫過的一個表單,這裡我就不加CSS修飾了,醜就醜吧!

2)探究姓名校驗

首先,我們為提交按鈕新增一個點選事件,用來對錶單進行一個校驗。

姓名的校驗主要是一個非空校驗,如下程式碼可以實現!

function validate(){
	//加入姓名驗證
	var username = document.getElementById("username").value;
	if(username.trim() == ""){
		alert("使用者名稱不能為空!");
	}
}

3)探究愛好選擇校驗

我們知道,愛好至少要選擇一項!我們可以用如下程式碼進行校驗!

//加入愛好校驗
var hobby = document.getElementsByName("hobby");
var isHobby = false;
for(var i=0;i<hobby.length;i++){
	if(hobby[i].checked){
		isHobby=true;
	}
}
if(!isHobby){
	alert("愛好至少選擇一項!");
}

4)探究畢業院校校驗

我們知道,畢業院校是一個下拉框,我們不能讓使用者選擇“--請選擇--”這個選項!所以程式碼如下:

//加入畢業院校校驗
var school = document.getElementById("school").value;
if(school == "--請選擇--"){
	alert("請選擇畢業院校!");
}

5)探究個人簡介的校驗

個人簡介的校驗和使用者名稱的校驗相一致

var introduce = document.getElementById("introduce").value
if(introduce.trim() == ""){
	alert("個人簡介不能為空!");
}

3.總體規劃

1)避免驗證失敗後仍然提交

將提交按鈕改成普通按鈕,通過js來進行提交

<input type="button" value="提交" onclick="sub();"/>

sub()方法中對錶單項實現提交功能,前提是驗證通過!

function sub(){
	if(validate()){
		document.getElementById("ff").submit();
	}
}

這裡的validate()函式就是我們的校驗函式,如果校驗成功返回true進行提交,反之則不提交

validate()函式的具體實現如下,綜合了我們上面講解的內容

function validate(){
	//加入姓名驗證
	var username = document.getElementById("username").value;
	if(username.trim() == ""){
		alert("使用者名稱不能為空!");
		return false;
	}
	//加入愛好校驗
	var hobby = document.getElementsByName("hobby");
	var isHobby = false;
	for(var i=0;i<hobby.length;i++){
		if(hobby[i].checked){
			isHobby=true;
		}
	}
	if(!isHobby){
		alert("愛好至少選擇一項!");
		return false;
	}
	//加入畢業院校校驗
	var school = document.getElementById("school").value;
	if(school == "--請選擇--"){
		alert("請選擇畢業院校!");
		return false;
	}
	//加入個人簡介校驗
	var introduce = document.getElementById("introduce").value
	if(introduce.trim() == ""){
		alert("個人簡介不能為空!");
		return false;
	}
	return true;
}

2)實現校驗人性化

我們通過實驗發現一個問題,那就是我們每次驗證失敗都會彈出一個警告框告知我們!實際上這種提醒的方式非常不人性化。通常的做法是在表單項右側以文字的方式進行提示!

將每個表單項的程式碼後追加span標籤,如使用者名稱標籤追加span標籤如下:

使用者名稱:<input type="text" name="username" id="username" value=""/><span id="usernameSpan"></span><br/>

對使用者名稱的校驗進行一個改進如下:

var username = document.getElementById("username").value;
var usernameSpan = document.getElementById("usernameSpan");
if(username.trim() == ""){
	usernameSpan.innerText = "使用者名稱不能為空";
	usernameSpan.style.color = "red";
	return false;
}else{
	usernameSpan.innerText = "使用者名稱輸入正確";
	usernameSpan.style.color = "green";
}

這樣的話,校驗更加人性化,避免彈窗!

剩餘的校驗以此類推,請讀者嘗試自行進行補全!


以上就是js表單校驗的相關知識!

到此為止,我們js的相關知識就算是告一段落了!更加深層次的知識讀者可以自行去學習(如果你是學習前端的話),如果你只是一個Java開發人員,實際上你瞭解到這裡已經足夠了!JQuery會代替大部分的知識,我相信沒有哪個公司依然在用原生的js在寫程式,所以我們要以此為立足點,將我們的目光放在JQuery的學習上!