jquery验证的问题

时间:2010-01-14 22:58:44

标签: jquery validation

我试图在点击按钮上附加验证。我有:

  <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更改为提交类型,则可以正常工作。否则,它不会。如何通过点击按钮调用验证?感谢

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

答案 2 :(得分: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?
        }
    }); 
});

答案 3 :(得分:0)

验证实际上附加在表格而非按钮上。你不必把

   $("#myForm").validate({...});

按钮内部点击代码。在表单提交上调用验证。按钮不会自动提交表单,但

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

一样。这就是为什么表单验证只会在您使用提交输入时启动。

如果由于某种原因确实需要按钮,那么您应该让按钮以编程方式提交表单。