JS中對於form表單提交時驗證form的onsubmit函式與submit型別按鈕的onclick函式
阿新 • • 發佈:2019-02-09
onsubmit只能表單上使用,提交表單前會觸發, onclick是按鈕等控制元件使用, 用來觸發點選事件。
在提交表單前,一般都會進行資料驗證,可以選擇在submit按鈕上的onclick中驗證,也可以在onsubmit中驗證。
但是onclick比onsubmit更早的被觸發。
提交過程
1、使用者點選按鈕 —->
2、觸發onclick事件 —->
3、onclick返回true或未處理onclick —->
4、觸發onsubmit事件 —->
5、onsubmit未處理或返回true ——>
6、提交表單.
onsubmit處理函式返回false,onclick函式返回false,都不會引起表單提交。
第一種:onsubmit
<script language="javascript">
function CheckPost ()
{
if (addForm.user.value == "")
{
alert("請填寫使用者名稱!");
addForm.username.focus();
return false;
}
if (addForm.title.value.length < 5)
{
alert("標題不能少於5個字元!" );
addForm.title.focus();
return false;
}
return true;
}
</script>
<form action="test.php" method="post" name="addForm" onsubmit="return CheckPost();">
<div>使用者:<input type="text" size="10" name="user" maxlength="20"/></div>
<div >標題:<input type="text" name="title" maxlength="50"/></div>
<div>內容:<textarea name="content" rows="8" cols="30"></textarea></div>
<div>
<input type="submit" name="submit" value="發表留言"/>
</div>
</form>
第二種:onclick
<script language="javascript">
function SendForm ()
{
if(CheckPost())
{
document.addForm.submit();
}
}
function CheckPost ()
{
if (addForm.user.value == "")
{
alert("請填寫使用者名稱!");
addForm.username.focus();
return false;
}
if (addForm.title.value.length < 5)
{
alert("標題不能少於5個字元!");
addForm.title.focus();
return false;
}
return true;
}
</script>
<form action="test.php" method="post" name="addForm">
<div>使用者:<input type="text" size="10" name="user" maxlength="20"/></div>
<div>標題:<input type="text" name="title" maxlength="50"/></div>
<div>內容:<textarea name="content" rows="8" cols="30"></textarea></div>
<div><input type="button" name="submit" value="發表留言" onclick="SendForm();"/></div>
</form>