我在我的应用程序中使用jQuery Validation。但现在我们计划在单独的文件(ErrMsgs.js)中声明所有错误消息变量,并在JQuery Validation Plugin(jquery.validate.min.js)中使用这些变量代替错误消息。
一些如何我需要在jquery.validate.min.js文件中包含ErrMsgs.js文件,以便我可以使用在ErrMsgs.js中声明的变量
我在jquery.validate.min.js
中使用了以下脚本loadJavaScriptFile("Scripts/ErrMsgs.js");
function loadJavaScriptFile(jspath) {
document.write('<script type="text/javascript" src="' + jspath + '"><\/script>');
}
但我无法使用ErrMsgs.js中声明的变量。
请建议我解决方案。
感谢。
答案 0 :(得分:1)
您可以使用http://requirejs.org/或http://www.andresvidal.com/jsl等javascript加载程序。如果您更喜欢jQuery,那么我只是找到了这个http://api.jquery.com/jQuery.getScript/,它使用了jQuery ajax调用,但是在成功时将结果解析为脚本。
每个都允许您在成功时执行自己的代码,因此您可以将它附加到验证器消息对象,或者如下所示(jQuery示例):
$.getScript("Scripts/ErrMsgs.js", function(data, textStatus){
$.extend(jQuery.validator.messages, myCustomErrorMessages);
});
如果您尝试按照当前的方式加载脚本,我不认为浏览器会将字符串解析为javascript。
答案 1 :(得分:1)
您只需将以下内容放入ErrMsgs.js
文件:
$.extend(jQuery.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a valid number.",
digits: "Please enter only digits.",
creditcard: "Please enter a valid credit card number.",
equalTo: "Please enter the same value again.",
accept: "Please enter a value with a valid extension.",
maxlength: $.validator.format("Please enter no more than {0} characters."),
minlength: $.validator.format("Please enter at least {0} characters."),
rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
range: $.validator.format("Please enter a value between {0} and {1}."),
max: $.validator.format("Please enter a value less than or equal to {0}."),
min: $.validator.format("Please enter a value greater than or equal to {0}.")
});
然后像任何其他JavaScript文件一样包含它:
<script type="text/javascript" src="ErrMsgs.js"></script>
修改强>
基于这些是需要在其他地方使用的变量的注释,可能以下内容可行。
var msg1 = "This field is required.",
msg2 = "Please fix this field.",
// etc., etc.
$.extend(jQuery.validator.messages, {
required: msg1,
remote: msg2,
// etc. etc.
});
$.extend(jQuery.xyz.messages, {
required: msg1,
remote: msg2,
// etc. etc.
});