在JQuery Validation中包含js

时间:2011-11-11 05:45:06

标签: javascript jquery jquery-validate

我在我的应用程序中使用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中声明的变量。

请建议我解决方案。

感谢。

2 个答案:

答案 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.

});