1. 程式人生 > >JS中對於form表單提交時驗證form的onsubmit函式與submit型別按鈕的onclick函式

JS中對於form表單提交時驗證form的onsubmit函式與submit型別按鈕的onclick函式

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>