0

我的jQuery:

 <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");进入else条件。永远不要火。alert("Fail");它在萤火虫中没有显示任何错误。我找不到我的错误。谢谢。

4

2 回答 2

0

通过电子邮件 http://jsfiddle.net/LjMQ2/1/ 进一步查看工作演示http://jsfiddle.net/Xc3d5/

请参阅验证elementapi: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");
    }
});
于 2012-07-04T05:14:24.260 回答
0

您遇到的唯一问题是表单中的每个输入或选择都必须具有一个name属性。

所以你的输入应该是这样的:

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

除此之外,你所有的演示对我来说都很好——我将@Tats_innit 演示简化为:http: //jsfiddle.net/ryleyb/LjMQ2/2/

如果您在表单提交成功或失败时需要做一些特定的事情,那么正确的位置应该是在submitHandlerorinvalidHandler中。如果要触发验证,合理的做法是执行$('form').submit().

于 2012-07-04T15:17:54.107 回答