2010-01-14 142 views
2

我想附加驗證點擊按鈕。我有:問題與jquery驗證

<script> 
$().ready(function() { 
// 
    $("#btnAdd").click(function() { 

     $("#myForm").validate({      
     // $("#crap").rules("add", {required: true, messages: {required:"Required input"} }); 
     rules: { crap: "required" }, 
     messages: { crap: "required field"} 
     // $("#myForm").validate(); 
     }); 

}); 

}); 
</script> 

<form method="post" id="myForm" name="myForm"> 
<input type="text" name="crap" id="crap" class="required" /> 
<br /> 
<input type="button" name="btnAdd" id="btnAdd" value="add" /> 
</form> 

現在,如果我更改btnAdd提交類型,它的工作原理。否則,它不會。我怎麼能在點擊按鈕時調用驗證?感謝

+1

+1的形式/元素 – 2010-01-14 23:02:49

回答

1

驗證發生在提交這就是爲什麼它工作..

你不想提交表單?

你可以調用通過鏈接提交調用驗證一個提交功能自己 ..

$("#myForm").validate({      
     // $("#crap").rules("add", {required: true, messages: {required:"Required input"} }); 
     rules: { crap: "required" }, 
     messages: { crap: "required field"} 
     // $("#myForm").validate(); 
     }).form(); 

[編輯]其實驗證插件具有形式方法,觸發驗證,所以鏈,代替提交..(更新在上面的代碼中)

http://docs.jquery.com/Plugins/Validation/Validator/form

+0

尼斯之一,但奇怪的是,它被稱爲'.FORM()'在驗證和'.valid()'。謝謝。 – 2010-01-14 23:20:09

+0

加比,極好選擇的名稱 – CFNinja 2010-01-15 14:54:00

0

呼叫validate()設置表單上的驗證。它在表單提交時驗證。您可以致電valid()強制驗證。見docsdemo

$().ready(function() { 
    $("#myForm").validate({      
     // $("#crap").rules("add", {required: true, messages: {required:"Required input"} }); 
     rules: { crap: "required" }, 
     messages: { crap: "required field"} 

    }); 
    $("#btnAdd").click(function() { 
     if($("#myForm").valid()) { 
      // Submit the form? 
     } 
    }); 
}); 
0

的驗證實際上是被附連到形式NOT的按鈕。您不必將按鈕點擊代碼放在按鈕點擊代碼內部。驗證在表單提交中被調用。一個按鈕不會自動提交表格,但是

<input type="submit".../> 

確實。這就是爲什麼表單驗證只在使用提交輸入時纔會起作用。

如果你確實需要一個按鈕出於某種原因,那麼你應該讓你的按鈕以編程方式提交表單。

1
$('#btnAdd').click(function(){ 
    if($("#formname").valid()) 
     alert("yes"); 
});