Javascript jQuery验证程序无效输入字段在成功提交后消失

Javascript jQuery验证程序无效输入字段在成功提交后消失,javascript,jquery,ajax,Javascript,Jquery,Ajax,我会保持简短。我有一个表单,该表单设置为在提交后显示无效/不完整的表单。我正在使用validate.js和form.js。提交不完整的表单后,字段显示为无效(正确)。更正并重新提交成功处理表单,但输入字段消失

我会保持简短。我有一个表单,该表单设置为在提交后显示无效/不完整的表单。我正在使用validate.js和form.js。提交不完整的表单后,字段显示为无效(正确)。更正并重新提交成功处理表单,但输入字段消失<我已经缩小了问题的范围。是在密码后面。我想我确实需要帮助。

    $(function() {
$('#fltm_register').ajaxForm({
    beforeSubmit: function() {
        $('#fltm_register').validate({    
            errorPlacement: function(error, element) { },
                rules: {
                first_name: {
                    required: true,
                    minlength: 2
                },
                last_name: {
                    required: true,
                    minlength: 2
                },
                email: {
                    required: true,
                    minlength: 4,
                    email: true
                },
                city: {
                    required: true
                },
                state: {
                    required: true
                },
                zip: {
                    required: true,
                    minlength: 4
                },
                country: {
                    required: true
                }
            },

            messages: {
                first_name: {
                    required: "",
                    minlength: ""
                },
                last_name: {
                    required: "",
                    minlength: ""
                },
                email: {
                    required: "",
                    minlength: "",
                    email: ""
                },
                city: {
                    required: ""
                },
                state: {
                    required: ""
                },
                zip: {
                    required: "",
                    minlength: ""
                },
                country: {
                    required: ""
                }
            },

            invalidHandler: function(e, validator) {
                var errors = validator.numberOfInvalids();
                if (errors) {
                    var message = errors == 1
                    ? '<div class="alert alert-block alert-error">You missed 1 field. It has been highlighted below.</div>'
                    : '<div class="alert alert-block alert-error">You missed ' + errors + ' fields.  They have been highlighted below.</div>';
                    $(".form_notifications").html(message);
                    $(".form_notifications").fadeIn();
                }
            },
            errorClass:'control-group error',
            errorElement: 'div.control-group',
            highlight: function (element, errorClass) {
                $(element).parents("div.control-group").addClass(errorClass); 
            }
        });
        return $('#fltm_register').valid();
    },
    success: function(responseText, statusText, xhr, $form) {
        $(".form_notifications").hide();
        $(".form_notifications").html(responseText).hide().fadeIn();
        $("#fltm_register")[0].reset();
    }
    /* unhighlight: function (element, errorClass, validClass) { 
            $(element).parents(".error").removeClass(errorClass); 
    } */
});
});
所以我需要下面的代码,但我不知道具体放在哪里,因为它似乎破坏了AJAX

    unhighlight: function (element, errorClass, validClass) { 
        $(element).parents(".error").removeClass(errorClass); 
    }

如果unhighlight是已定义的方法

highlight: function (element, errorClass) {
    $(element).parents("div.control-group").addClass(errorClass); 
},
unhighlight: function (element, errorClass, validClass) { 
    $(element).parents(errorClass).removeClass(errorClass).addClass(validClass); 
}

非常感谢!我不明白这是怎么回事。然而,我的代码确实与原始脚本有了很大的改变,所以我应该再试一次。唯一的问题是,它似乎只适用于多达3个控制元素?虽然突出显示的是这样的:,但我确实有一个不与其余部分一起突出显示的。我会试着看看我能做些什么…事实上,对不起,我必须回溯这个答案(我想?)。虽然它似乎解决了提交问题,但它开始了一个新的问题。当我提交无效字段时,再次提交而不做任何更改会导致字段消失……是的,它的设置显示:无
unhighlight
,是
.validate()
的一部分方法。因此,您只需将其放入
.validate()
中即可查看效果。你能给我看看小提琴吗?由于造型的原因,很难用小提琴来重现它。这个(活生生的例子)怎么样?这是中断后的表单。不幸的是,该方法仍然会导致输入字段消失。
errorClass:'control-group error',
errorElement: 'div.control-group',
highlight: function (element, errorClass) {
    $(element).parents("div.control-group").addClass(errorClass); 
},
unhighlight: function (element, errorClass, validClass) { 
    $(element).parents(".error").removeClass(errorClass); 
}
highlight: function (element, errorClass) {
    $(element).parents("div.control-group").addClass(errorClass); 
},
unhighlight: function (element, errorClass, validClass) { 
    $(element).parents(errorClass).removeClass(errorClass).addClass(validClass); 
}