關於HTMLdeform表單提交onclick和onsubmit
阿新 • • 發佈:2019-01-10
onsubmit只能表單上使用,提交表單前會觸發, onclick是按鈕等控制元件使用, 用來觸發點選事件。
在提交表單前,一般都會進行資料驗證,可以選擇在submit按鈕上的onclick中驗證,也可以在onsubmit中驗證。
但是onclick比onsubmit更早的被觸發。
提交過程
使用者點選按鈕 ---->觸發onclick事件 ---->onclick返回true或未處理onclick ----> 觸發onsubmit事件 ----> onsubmit未處理或返回true ------>
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"> 2 function SendForm () 3 { 4 if(CheckPost()) 5 { 6 document.addForm.submit(); 7 } 8 } 9 10 function CheckPost () 11 { 12 if (addForm.user.value == "") 13 { 14 alert("請填寫使用者名稱!"); 15 addForm.username.focus(); 16 return false; 17 } 18 if (addForm.title.value.length < 5) 19 { 20 alert("標題不能少於5個字元!"); 21 addForm.title.focus(); 22 return false; 23 } 24 return true; 25 } 26 </script> 27 28 <form action="test.php" method="post" name="addForm"> 29 <div>使用者:<input type="text" size="10" name="user" maxlength="20"/></div> 30 <div>標題:<input type="text" name="title" maxlength="50"/></div> 31 <div>內容:<textarea name="content" rows="8" cols="30"></textarea></div> 32 <div><input type="button" name="submit" value="發表留言" onclick="SendForm();"/></div> 33 </form>