2010-01-14 99 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"); 
});