2011-11-11 81 views
0

我在我的应用程序中使用jQuery验证。但现在我们打算在单独的文件(ErrMsgs.js)中声明所有错误消息变量,并使用这些变量代替JQuery验证插件(jquery.validate.min.js)中的错误消息。包括Js与JQueryValidation

一些我如何需要包括ErrMsgs.js在jquery.validate.min.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中声明的变量。

请给我解决方案。

谢谢。

+1

这将帮助你 http://stackoverflow.com/questions/950087/include-javascript-file-inside-javascript-file –

+0

@KanishkaPanamaldeniya感谢快速回复。 Tats有用,但我需要在“jquery.validate.min.js”以外的其他文件中声明变量,并且需要在“jquery.validate.min.js”文件中使用这些变量。 – sandeep

回答

1

您可以使用JavaScript加载器,如http://requirejs.org/http://www.andresvidal.com/jsl。如果您更喜欢jQuery,那么我只是发现这个http://api.jquery.com/jQuery.getScript/,它使用jQuery ajax调用,但将结果解析为成功脚本。

每一种允许您在成功执行自己的代码,这样你就可以将其连接到验证的消息对象,或任何如下(jQuery的例子):

$.getScript("Scripts/ErrMsgs.js", function(data, textStatus){ 
    $.extend(jQuery.validator.messages, myCustomErrorMessages); 
}); 

如果你尝试按照您当前的方式加载脚本,我不认为浏览器会将该字符串解析为JavaScript。

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. 

}); 
+0

真的很有帮助,但我需要在除“jquery.validat.min.js”以外的其他文件中使用这些变量。 “ErrMsg.js”是一个将被2个js文件“jquery.validat.min.js”和“xyz.js”使用的文件。这可能吗? – sandeep

+0

@sandeep,我不完全确定你要做什么,但我编辑了我的答案,以显示如何使用变量来定义每条消息。在使用相同变量的同时,您还可以使用[jQuery'$ .extend()'](http://api.jquery.com/jQuery.extend/)作为其他函数的第二次。 – Sparky