【问题标题】:jQuery validation custom error messagejQuery验证自定义错误信息
【发布时间】:2015-02-11 12:47:18
【问题描述】:

我似乎无法让 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" />

验证有效,但我收到“警告:没有为 CampaignId 定义消息”而不是消息。

我可以指定默认消息...但它需要特定于字段(包含字段名称)。

如果我在字段中添加“标题”属性,它会将其用作错误消息...但我希望它使用 data-val-myvalidation 代替,因为这似乎是惯例。

谢谢

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    应该是data-msg-&lt;rule&gt;

    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");
    },
    

    【讨论】:

    • 太棒了。这解决了它!为什么 MVC 填充验证的其余部分使用 data-val-validationname?
    猜你喜欢
    • 1970-01-01
    • 2014-03-25
    • 1970-01-01
    • 2016-10-21
    • 2021-08-12
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多