使用jQuery验证插件的select2自定义错误消息

时间:2017-01-26 18:25:05

标签: javascript jquery html5 jquery-validate

当我尝试验证select2时,我得到的是与标签相同的文本

 <div class="row">
     <div class="col-sm-12">
         <div class="form-group">
             <label for="cboMetodoPago">Método de pago <span class="required"></span></label>
             <select class="form-control select2-nosearch" id="cboMetodoPago" name="cboMetodoPago" required></select>
         </div>
     </div>
 </div>

这是我配置插件的方式

    $(".formsave").validate({
        highlight: function (element) {
            jQuery(element).closest('.form-group').addClass('has-error');
        },
        success: function (element) {
            jQuery(element).closest('.form-group').removeClass('has-error');
        },
        ignore: ["input[type=hidden]"],
        onfocusout: false,
        invalidHandler: function (form, validator) {
            var error = validator.numberOfInvalids();

            if (error) {
                validator.errorList[0].element.focus();
            }
        },
        message: {
            cboMetodoPago: {
                required: "Este campo es obligatorio"
            }
       }
    });

我得到的文字与表格组内的标签相同

enter image description here

用任何方法替换相应的文本吗?

此致

1 个答案:

答案 0 :(得分:1)

对象称为messages,而不是message

messages: { // <- "messages", not "message"
    cboMetodoPago: {
        required: "Este campo es obligatorio"
    }
}

根据您对highlight的使用情况,您应使用unhighlight代替success

highlight: function (element) {
    jQuery(element).closest('.form-group').addClass('has-error');
},
unhighlight: function (element) {
    jQuery(element).closest('.form-group').removeClass('has-error');
},

success函数实际上用于控制错误消息元素,该元素通常在元素通过验证时隐藏。换句话说,当元素通过验证时,您可以利用错误label来提供另一条消息或图标,例如“已通过”或绿色复选标记。