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

时间:2017-04-10 07:49:47

标签: jquery jquery-validate

我需要更改jQuery Validation Plugin的默认错误消息。我已经学会了如何从here实现这一目标,而且效果很好。但是我需要更多的习惯化。是否可以根据输入字段的类型设置不同的错误消息。 我的意思是,对于:

<input type="text" required>

默认错误massege应为“填写此字段是必需的”。而对于

<input type="file" required>

默认错误massege应为“需要附加文档”。 我知道我可以为这样的字段单独设置错误消息:

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

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

2 个答案:

答案 0 :(得分:1)

您可以使用.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"
        }
    })
});

DEMO:jsfiddle.net/cftesLwd/

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

答案 1 :(得分:-1)

为每个输入字段指定一个不同的名称,并为名称

分别创建验证规则

假设您有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",
}
}