用javascript調用表單驗證事件時,爲何return false了仍是把表單submit了?

表單提交前,都會有定義一個驗證的方法以對用戶提交的內容進行限定,今天寫到了這個,但出現了一個好鬱悶的東西,就是一點提交了,調用我本身寫的一個CheckForm()方法時,我明明寫了return false了,但它仍是提交到服務器了,好不鬱悶!而後仔細檢查才發現,原來是漏了個return,下面先看出錯的代碼:javascript

 1 <script src="../js/jquery-1.6.js" type="text/javascript"></script>
 2 <script type="text/javascript">
 3     $(function () {
 4         $("#btnAdd").click(function () { CheckForm() });
 5         $("#btnSave").click(function () { CheckForm() });
 6     });
 7 
 8             
 9     function CheckForm() {
10                 
11         if ($("#ddlClassesType_2").val() == "--請選擇--") {
12             alert("請選擇表單的類型");
13             $("#ddlClassesType_2").focus();
14             return false;
15         }
16 
17         if ($("#txtWebName").val() == "") {
18             alert("請輸入網址的名稱");
19             $("#txtWebName").focus();
20             return false;
21         }
22 
23         if ($("#txtWebNameAlias").val() == "") {
24             alert("請輸入網址的別稱");
25             $("#txtWebNameAlias").focus();
26             return false;
27         }
28 
29         if ($("#ddlVisitorType").val() == "-1") {
30             alert("請選擇網址的訪問類型");
31             $("#ddlVisitorType").focus();
32             return false;
33         }
34 
35         if ($("#txtSortNo").val() == "") {
36             alert("請輸入序號");
37             $("#txtSortNo").focus();
38             return false;
39         }
40 
41         if ($("#txtWebUrl").val() == "") {
42             alert("請輸入網址");
43             $("#txtWebUrl").focus();
44             return false;
45         }
46 
47         if ($("#txtWebDesc").val() == "") {
48             alert("網址備注信息也不能為空,請輸入。");
49             $("#txtWebDesc").focus();
50             return false;
51         }
52         return true;
53     }
54 </script>

 

我回想了一下之前寫過的javascript經驗,也碰到過相似的問題,當時是用javascript直接用的,相似於下面這樣子:java

<asp:Button ID="btnSave" runat="server" Text="保存" Width="50px" OnClick="btnSave_Click" OnClientClick="return CheckForm();" />

 

看到CheckForm()前面的return 沒有?其實jquery也是同理的,就是少了這個傢伙,因此,只要把第4跟第5行改爲下面這樣子就OK了jquery

$("#btnAdd").click(function () { return CheckForm() });
$("#btnSave").click(function () { return CheckForm() });

 

 

雖然簡單,但不會的時候真的要想半天,此次把它記下來,之後也能回顧一下,但願能幫到有一樣困惑的朋友。服務器

相關文章
相關標籤/搜索