JavaScript 表單驗證



JavaScript 可用於在資料被送到伺服器前對 HTML 表單中的這些輸入資料進行驗證。

表單資料經常需要使用 JavaScript 來驗證其正確性:


  • 驗證表單資料是否為空?


  • 驗證輸入是否是正確的email位址?


  • 驗證日期是否輸入正確?


  • 驗證表單輸入內容是否為數字型?



必填(或必填)項目

#下面的函數用來檢查使用者是否已填入表單中的必填(或必填選)項目。假如必填或必選項為空,那麼警告框會彈出,且函數的回傳值為false,否則函數的回傳值則為true(表示資料沒有問題):

function validateForm()
{
	var x=document.forms["myForm"]["fname"].value;
	if (x==null || x=="")
	{
		alert("姓必须填写");
		return false;
	}
}

以上函數在form表單提交時被呼叫:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<head>
<script>
function validateForm(){
var x=document.forms["myForm"]["fname"].value;
if (x==null || x==""){
  alert("姓必须填写");
  return false;
  }
}
</script>
</head>
<body>
	
<form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post">
姓: <input type="text" name="fname">
<input type="submit" value="提交">
</form>
	
</body>
</html>

#運行實例»

點擊"運行實例" 按鈕查看線上實例


E-mail 驗證

下面的函數檢查輸入的資料是否符合電子郵件地址的基本語法。

意思是說,輸入的資料必須包含 @ 符號和點號(.)。同時,@ 不可以是郵件地址的首字符,並且@ 之後需有至少一個點號:

function validateForm(){
	var x=document.forms["myForm"]["email"].value;
	var atpos=x.indexOf("@");
	var dotpos=x.lastIndexOf(".");
	if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
		alert("不是一个有效的 e-mail 地址");
		return false;
	}
}

下面是連同HTML 表單的完整代碼:

實例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<head>
<script>
function validateForm(){
	var x=document.forms["myForm"]["email"].value;
	var atpos=x.indexOf("@");
	var dotpos=x.lastIndexOf(".");
	if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
		alert("不是一个有效的 e-mail 地址");
  		return false;
	}
}
</script>
</head>
<body>
	
<form name="myForm" action="demo-form.php" onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<input type="submit" value="提交">
</form>
	
</body>
</html>

運行實例»

點擊"運行實例" 按鈕查看線上實例


################################