天天看點

JS return false 與 return true(解決表單重複送出的問題)

在大多數情況下,為事件處理函數傳回false,可以防止預設事件的行為。

例如,預設情況下點選一個<a>元素,頁面會跳轉到該元素href屬性指定的頁。Return False 就相當于終止符,Return True 就相當于執行符。在js中return false的作用一般是用來取消預設動作的。比如你單擊一個連結除了觸發你的onclick事件(如果你指定的話)以外,還要觸發一個預設事件就是執行頁面的跳轉。是以如果你想取消對象的預設動作就可以return false。

return false應用比較多的場合有:

<form name="form1"  onsubmIT="return youfunction();">...... </form>
<a href="www.***.com"  οnclick="...;return false;">dddd </a>  
<script type="text/javascript">
 function test(){
       alert("test");
       return false;
  }
 </script>
1, <a href="a.JSP" mce_href="a.JSP" οnclick='test();'>超級連結 </a>
2, <input type="button" οnclick='test()' value="送出">
3, <form name="form1"  onsubmIt="return test();">      

最近做的項目,通過綁定在 button 的 onclick 事件的函數送出表單。發現 return false 也是很重要的。比如:<input type="submit" οnclick="submitAction(); return false;" />

 submitAction 方法裡面有送出表單的動作。如果不加 return false,在執行完 submitAction 之後,submit 按鈕還會繼續執行它的預設事件,就會再次送出表單。這可能就是很多錯誤的根源。

衆所周知,在表單中加上οnsubmit="return false;"可以阻止表單送出。

下面是簡單的一小段代碼:

<form action="index.jsp" method="post" onsubmit="submitTest();">  
    <INPUT value="www">  
    <input type="submit" value="submit">  
</form>  
 
<SCRIPT LANGUAGE="JavaScript">  
    function  submitTest(){  
         // 一些邏輯判斷  
        return false;  
    }  
</SCRIPT>      

大家判斷像上面的寫法,點選submit按鈕該表單是否送出?

若答案為是(正确),就不用往下看了。

若答案為否(錯誤),就錯了。

實際情況是表單正常送出,若想它不送出,應該将

view plaincopy to clipboardprint?

<form action="index.jsp" method="post" οnsubmit="submitTest();">

改為

view plaincopy to clipboardprint?

<form action="index.jsp" method="post" οnsubmit="return submitTest();">

繼續閱讀