jQuery 验证,基于输入类型的不同错误消息

jQuery validate, different error message based on input type

我需要更改 jQuery 验证 Plugin. I have learned how to achieve this from here 的默认错误消息,这很好用。但是我需要更多的定制。是否可以根据输入字段的类型设置不同的错误消息。 我的意思是,为了:

<input type="text" required>

默认错误消息应该是 "Filling this field is required"。对于

<input type="file" required>

默认错误消息应该是 "Attaching document is required"。 我知道我可以为这样的字段单独设置错误消息:

$('form').validate({                
    messages: {
        FieldName: { required: "Attaching document is required" }
    }
});

问题是,表格真的很大,所以我认为单独编写错误消息不是一个好的解决方案。

为每个输入字段指定不同的名称并为名称单独创建验证规则

假设您有 2 个字段:

<input type="text" name="textfield" required>
<input type="file" name="filefield" required>

那么您的验证消息将是:

var validator = $("form").validate({
rules: {
    textfield: "required",
    filefield: "required",
},
messages: {
    textfield: "Filling this field is required",
    textfield: "Attaching document is required",
}
}

您可以使用 .rules('add') 方法结合 jQuery .each() 来根据 type.

全局更改错误消息
$('input[type="text"]').each(function() {
    $(this).rules('add', {
        messages: {
            required: "this TEXT field is required"
        }
    })
});

$('input[type="file"]').each(function() {
    $(this).rules('add', {
        messages: {
            required: "this FILE upload field is required"
        }
    })
});

演示:jsfiddle.net/cftesLwd/

我的演示表明,即使在不使用此方法声明规则本身的情况下,您也可以使用此方法更改消息。消息仅显示在包含 required 属性的字段上。否则,you can also easily declare the required rule for all inputs of these types 即使您没有内联 required 属性。