我正在使用Asp.Net Mvc3和不引人注意的jquery验证。我想让我的日期验证本地化,我的意思是,jquery正在验证我的日期是MM / dd / yyyy,但我希望它是dd / MM / yyyy。
我试图使用jQuery Globalize插件(http://github.com/jquery/globalize)。
我添加了脚本globalize.js和globalize.culture.pt-BR.js的引用,当我的页面加载时,我运行以下脚本:
(function() { $(function() { $.datepicker.setDefaults($.datepicker.regional['pt-BR']); Globalize.culture("pt-BR"); }); }).call(this);
jQuery UI插件作为魅力,但验证不。
我还缺少什么?
编辑:
使用下面的答案链接解决了这个问题,使用Globalize plugin:
当然,我不得不在页面中添加对Globalize插件的引用,也可以引用我想使用的文化(所有这些都可以在插件的网站上使用)。之后只是一小段JavaScript代码。
Globalize.culture("pt-BR"); $.validator.methods.date = function(value,element) { return this.optional(element) || Globalize.parseDate(value); };
解决方法
如果您正在做任何国际化工作和ASP.NET MVC,我强烈建议您阅读Nadeem Afana的两个优秀文章
> ASP.NET MVC 3 Internationalization
> ASP.NET MVC 3 Internationalization – Part 2 (NerdDinner Demo)
在他的第二篇文章中,他有一个使用jQuery UI datepicker并讨论本地化问题的详细示例。
在他的例子中,他提到了以下内容
@* Unfortunately,the datepicker only supports Neutral cultures,so we need to adjust date and time format to the specific culture *@ $("#EventDate").change(function(){ $(this).val(Globalize.format($(this).datetimepicker('getDate'),Globalize.culture().calendar.patterns.d + " " + Globalize.culture().calendar.patterns.t)); /*d t*/ });
我也建议下载他的网站链接的Nerd Dinner国际化演示。