jQuery Validate插件不会删除错误消息

时间:2013-04-02 21:31:17

标签: jquery forms jquery-validate

我“再次”询问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/

2 个答案:

答案 0 :(得分:5)

默认情况下,jQuery Validate插件会自动清除模糊和键盘事件的错误消息。但是,your implementation was broken by invalid 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/

答案 1 :(得分:-2)

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

我会用:

form.submit() 

代替。

参考文献:

Jquery Validate Plugin Prevent Double Submit On Validation

jquery validation is forcing a double click on submit for form that submits to thickbox