是否存在本地化JQuery验证消息的标准做法?
通过声明我自己的ClassRules并引用它们而不是默认的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>
我只是想看看是否有更好的方法。
答案 0 :(得分:5)
您可以覆盖messages
对象中的validator
对象。
$.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
对象。
答案 1 :(得分:2)
如果您需要,可以使用验证文件:
https://github.com/jzaefferer/jquery-validation/tree/master/src/localization
只需获取您需要的内容并引用页面中的.js
文件。
<script type="text/javascript" src="localization/messages_XX.js"></script>