HTML表單
表單是用于從用戶收集輸入的HTML機(jī)制。
要?jiǎng)?chuàng)建基本表單妓柜,您需要三個(gè)元素: form箱季,input 和 button 元素。
<!DOCTYPE HTML>
<html>
<body>
<form method="post" action="http://example.com/form">
<input name="name" />
<button>Submit Vote</button>
</form>
</body>
</html>
method屬性指定將使用哪個(gè)HTTP方法將表單數(shù)據(jù)發(fā)送到服務(wù)器棍掐。
允許的值為 get 和 post 藏雏,它們對應(yīng)于HTTP GET和POST方法。
method屬性的默認(rèn)值為 get 作煌。
以下代碼設(shè)置表單的 post 值:
<form method="post" action="http://example.com/form">
JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對 HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證掘殴。
表單數(shù)據(jù)經(jīng)常需要使用 JavaScript 來驗(yàn)證其正確性:
驗(yàn)證表單數(shù)據(jù)是否為空?
驗(yàn)證輸入是否是一個(gè)正確的email地址粟誓?
驗(yàn)證日期是否輸入正確奏寨?
驗(yàn)證表單輸入內(nèi)容是否為數(shù)字型?
- 下面的函數(shù)用來檢查用戶是否已填寫表單中的必填(或必選)項(xiàng)目鹰服。
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
{
alert("姓必須填寫");
return false;
}
}
以上函數(shù)在 form 表單提交時(shí)被調(diào)用:
<form name="myForm" action="demo-form.php" onsubmit="return validateForm()" method="post">
姓: <input type="text" name="fname">
<input type="submit" value="提交">
</form>
onsubmit 會(huì)在表單中的確認(rèn)按鈕被點(diǎn)擊時(shí)發(fā)生病瞳。
語法:
onsubmit="SomeJavaScriptCode"
HTML 表單驗(yàn)證也可以通過瀏覽器來自動(dòng)完成。
如果表單字段 (fname) 的值為空, required 屬性會(huì)阻止表單提交:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="demo_form.php" method="post">
<input type="text" name="fname" required="required">
<input type="submit" value="提交">
</form>
<p>點(diǎn)擊提交按鈕悲酷,如果輸入框是空的套菜,瀏覽器會(huì)提示錯(cuò)誤信息。</p>
</body>
</html>
- 下面的函數(shù)檢查輸入的數(shù)據(jù)是否符合電子郵件地址的基本語法舔涎。
意思就是說,輸入的數(shù)據(jù)必須包含 @ 符號(hào)和點(diǎn)號(hào)(.)逗爹。同時(shí)亡嫌,@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個(gè)點(diǎn)號(hào):
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("不是一個(gè)有效的 e-mail 地址");
return false;
}
}
以上函數(shù)在 form 表單提交時(shí)被調(diào)用:
<form name="myForm" action="demo-form.php"
onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<input type="submit" value="提交">
</form>