【问题标题】:How do I localize the validation messages in JQuery's Validation?如何本地化 JQuery 的验证中的验证消息?
【发布时间】:2011-04-25 00:55:19
【问题描述】:

是否有本地化 JQuery 验证消息的标准做法?

我已经能够通过声明我自己的 ClassRules 并引用它们而不是默认的来一起破解一些东西。

我的代码。

<input class="localized-required" id="myTextInput" name="myTextInput" type="text" value="" />

<script language="javascript" type="text/javascript">
        jQuery(document).ready(function () {
            $.validator.addMethod("localized-required", $.validator.methods.required, '<%: Resources.Strings_ValidationMessages.SelectionRequired %>');

            $.validator.addClassRules(
            {
                "localized-required": { "localized-required": true }
            });

            jQuery("#myForm").validate();
        })
    </script>

我只是想看看有没有更好的方法。

【问题讨论】:

    标签: asp.net jquery validation localization jquery-validate


    【解决方案1】:

    您可以覆盖validator 对象中的messages 对象。

    $.validator.messages = {
        required: '<%: Resources.Strings_ValidationMessages.SelectionRequired %>'
    };
    

    或者您可以使用自己的 defaultMessage 函数。

    $.validator.prototype.defaultMessage = function(element, method) {
        var locale = magicFunctionToGetLocale();
        var message = $.validator.localizedMessages[locale][method];
    
        return this.findDefined(
            this.customMessage( element.name, method ),
            this.customMetaMessage( element, method ),
            // title is never undefined, so handle empty string as undefined
            !this.settings.ignoreTitle && element.title || undefined,
            message,
            "<strong>Warning: No message defined for " + element.name + "</strong>"
        );
    };
    

    在上面的示例中,$.validator.localizedMessages 是在代码中的其他位置创建的对象。标准验证插件没有localizedMessages 对象。

    【讨论】:

    • 谢谢。第一个建议简短而甜蜜,我喜欢它。
    • 谢谢。第三个建议尚不存在。
    【解决方案2】:

    如果您愿意,可以使用验证文件:

    https://github.com/jzaefferer/jquery-validation/tree/master/src/localization

    只需获取您需要的文件并在您的页面中引用 .js 文件即可。

    <script type="text/javascript" src="localization/messages_XX.js"></script>
    

    【讨论】:

      猜你喜欢
      • 2011-08-26
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多