jQuery验证自定义错误消息

时间:2015-02-11 12:47:19

标签: jquery jquery-validate

我似乎无法通过jQuery验证来使用针对其验证的输入字段保存的data-val-lookup属性:

以下是我用来添加验证类规则的代码。

$(function () {
    $.validator.addMethod('lookup', function (value, element, params) {
        var hiddenId = $(element).attr("id");
        var textBoxId = hiddenId + "_LookupText";
        return !(($('#' + hiddenId).val() == "") && ($('#' + textBoxId).val() != ""));
    });

    $.validator.addClassRules('lookup', { lookup: true });
});

以下是我的查询输入字段:

<input class="lookup" data-val="true" data-val-lookup="Campaign must be a valid lookup item" data-val-number="The field Campaign must be a number." id="CampaignId" name="CampaignId" type="text" value="" />

<input type="text" id="CampaignId_LookupText" class="form-control" name="CampaignId_LookupText" />

验证有效,但我得到&#34;警告:没有为CampaignId定义消息&#34;而不是消息。

我可以指定默认消息......但它必须是字段特定的(包含字段名称)。

如果我添加&#34;标题&#34;属性为该字段,它使用此作为错误消息...但我希望它使用data-val-myvalidation,因为这似乎是惯例。

由于

1 个答案:

答案 0 :(得分:2)

应为data-msg-<rule>

data-msg-lookup="Campaign must be a valid lookup item"

customMessage方法如下

customDataMessage: function (element, method) {
    return $(element).data("msg" + method[0].toUpperCase() + method.substring(1).toLowerCase()) || $(element).data("msg");
},