2012-07-04 99 views
0

我的jQuery:validate.js始終驗證

<script src="js/jquery-1.4.4.js" type="text/javascript"></script> 
<script src="js/jquery.validate.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $(function() { 
      var v = $("#form1").validate({ 
       ignore: ':hidden', 
       rules: { 
        txtTest: { required: true } 

       }, 
       messages: { 
        txtTest: "User name is required." 

       } 

      }); 

      $("#btnTest").click(function() { 
       if (v.form()) { 
        alert("Success"); 
       } 
       else { 
        alert("Fail"); 
       } 
      }); 
     }); 

    </script> 

,我的HTML是:

<input type="text" id="txtTest" /> 
<input type="button" id="btnTest" value="Test" /> 

雖然txtTest是空白的火alert("Success"); .Never在else condition.Never火alert("Fail");。它沒有按進入在螢火蟲中不顯示任何錯誤,我無法找到我的錯誤。謝謝。

+0

當我使用'v.validate()' –

回答

0

您遇到的唯一問題是,在形式的每個輸入或選擇必須有一個name屬性。

所以你的輸入應該是這樣的:

<input type="text" id="txtTest" name="txtTest" /> 

除此之外,所有的演示看起來很好,我 - 我簡化@Tats_innit演示這樣:http://jsfiddle.net/ryleyb/LjMQ2/2/

如果你需要做特別的當表單提交成功失敗時,正確的地方將在submitHandlerinvalidHandler。如果你想觸發驗證,一個合理的事情就是做一個$('form').submit()

0

請參閱使用電子郵件http://jsfiddle.net/LjMQ2/1/

見驗證element API工作演示http://jsfiddle.net/Xc3d5/進一步:http://docs.jquery.com/Plugins/Validation/Validator/element#element

使用v.form()不會做任何事情,我想用.element,然後通過你想要的元素驗證。休息演示將清楚。

希望這有助於:)

代碼

var v = $("form").validate({ 
    submitHandler: function() { 
     console.log('successful submit'); 
     return false; 
    } 
}); 

$("#btnTest").click(function() { 
    if (v.element('#txtTest')) { 
     alert("Success"); 
    } 
    else { 
     alert("Fail"); 
    } 
}); 
+1

+1作爲工作演示的人時,我得到一個錯誤'v.validate不是一個函數',一如既往......':'' – undefined

+1

@undefined lol:P謝謝,您! –

+0

如何處理此方法中的電子郵件字段? –