3

我“再次”询问 jQuery Validate 插件...

现在,我的问题是错误标签不会隐藏,直到我单击一次提交按钮并且需要第二次单击才能提交​​表单,知道吗?如果我的输入文本有效,我需要的是隐藏错误标签。

jQuery:

$("#form").validate({
            rules: {
                "name": {
                    required: true,
                    minlength: 3
                },
                "phone":{
                    required:true,
                    digits:true,
                    minlength: 9
                },
               "email":{
                    required: true
                },
                "storageoptions":{
                    required: true
                },
                "quantity":{
                    required:true,
                    digits:true
                }
            },
            messages: {
                "name": {
                    required: "Please enter a name"
                },
                "phone":{
                    required: "Required field"
                },
                "email":{
                    required: "Enter a valid email"
                },
                "storageoptions":{
                    required: "Please select an option"
                },
                "quantity":{
                    required: "This Field required"
                }               
            },
            errorPlacement: function(error, element) {
               error.insertBefore(element);
            },
            submitHandler: function (form) {    

               $.ajax({
                    type: 'POST',
                    data: $(form).serialize(),
                    url: 'file.php',
                    success: function () {
                        form.reset();
                        $('#submit').hide();
                        $('#success-line').show().fadeOut(7000, function(){
                            $('#submit').show("slow");
                        });
                    }
                });
                return false;
            }


        });

这是我的演示:http: //jsfiddle.net/ujDC3/

4

2 回答 2

5

默认情况下,jQuery Validate 插件会自动清除 blur 和 keyup 事件的错误消息。但是,您的实现被无效的 HTML 破坏了

没有这样的事情type="input"

<input type="input" name="name" id="name" class="longinput" />

将它们全部更改为type="text"

<input type="text" name="name" id="name" class="longinput" />

现在它按预期工作:http: //jsfiddle.net/Y9RFt/

于 2013-04-02T23:41:34.060 回答
-2

submitHandler 函数仅在验证通过后才被点击,因此您点击提交按钮以通过验证,然后您必须再次点击它才能最终发送它。

我会使用:

form.submit() 

反而。

参考:

Jquery Validate Plugin 防止双重提交验证

jquery验证强制双击提交以提交到thickbox的表单

于 2013-04-02T21:41:22.567 回答