jQuery validate需要针对特定​​输入使用不同的突出显示方法

时间:2014-09-18 11:07:22

标签: jquery jquery-validate

由于我的表单需要html,我需要稍微更改突出显示的方法。所以我的表单经过验证:

$('#training form').validate({
    errorPlacement: function() {
        return false;
    },
    highlight: function(element) {
        $(element).parent().addClass('error');
    },
    rules: {
        m38086fbrp__54 : 'required',
        m38086fbrp__55 : 'required',
        m38086fbrp__57 : 'required',
        m38086fbrp__58 : {
            email: true,
            required: true
        },
        m38086fbrp__56 : 'required',
        m38086fbrp__62 : 'required',
        m38086fbrp__67 : 'required',
        m38086fbrp__70 : 'required'
    },
    unhighlight: function(element) {
        $(element).parent().removeClass('error');
    }
});

然后我需要:

$('#training form').validate({
    errorPlacement: function() {
        return false;
    },
    highlight: function(element) {
        $(element).parent().parent().addClass('error');
    },
    rules: {
        'm38086fbrp__69[]' : 'required'
    },
    unhighlight: function(element) {
        $(element).parent().removeClass('error');
    }
});

正如您所看到的那样,只是为复选框组略微更改了突出显示方法。

1 个答案:

答案 0 :(得分:0)

引用OP

  

"由于我的表单所需的html,我需要稍微更改突出显示的方法。"

您只需在highlight回调函数中使用条件。

....
highlight: function(element) {
    if ( **some condition** ) {
        $(element).parent().parent().addClass('error');
    } else {
        $(element).parent().addClass('error');
    }
},
....

由于您没有发布任何HTML标记,我无法发布更详细的答案,但您可以尝试$(element).is(':checkbox')