标签: jquery-globalization

使用asp.net mvc 3本地化jquery验证

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

jQuery UI插件作为魅力,但验证不起作用.我还缺少什么?

编辑:

使用下面答案中的链接,我使用Globalize插件解决了问题:

当然,我必须在页面中添加对Globalize插件的引用,以及对我想要使用的文化的引用(所有这些都在插件的站点上提供).之后只是一小段JavaScript代码.

Globalize.culture("pt-BR");
$.validator.methods.date = function(value, element) {
    return this.optional(element) || Globalize.parseDate(value);
};
Run Code Online (Sandbox Code Playgroud)

jquery-validate asp.net-mvc-3 jquery-globalization

21
推荐指数
3
解决办法
2万
查看次数

无法让jquery全球化发挥作用

我尝试使用jQuery Globalization插件来修复jquery无阻碍客户端验证的逗号问题.但是我尝试了很多解决方案,没有很好的解决方案来解决这个问题.我在非英语本地化计算机上,这对我的客户输入十进制值如"123,66"而不是"123.66"很重要.ASP.NET验证告诉我,价格必须是一个数字!嗯?你是认真的吗 ?大声笑

当我尝试修复时,我收到此javascript错误.

$.global is undefined
Run Code Online (Sandbox Code Playgroud)

在这里我的代码.

Layout.cshtml

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />

    <script src="@Url.Content("~/Scripts/jquery-1.7.1.js")" type="text/javascript"></script>

    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"> </script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")"type="text/javascript"></script>

    <script src="@Url.Content("~/Scripts/globalize.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/cultures/globalize.cultures.js")" type="text/javascript"></script>

    <script src="@Url.Content("~/Scripts/jquery.form.js")"type="text/javascript"></script>

    <script src="@Url.Content("~/Scripts/glob.fix.js")" type="text/javascript"></script>
</head>

<body>
    @RenderBody()
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

glob.fix.js

$.validator.methods.range = function (value, element, param) {
   var globalizedValue = value.replace(",", ".");
   return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]);
}

$.validator.methods.number = function (value, element) {
   return this.optional(element) || …
Run Code Online (Sandbox Code Playgroud)

jquery-globalization

18
推荐指数
1
解决办法
3万
查看次数

ASP.NET MVC 3 RC 2客户端验证与全球化

我的目标是根据用户的文化验证客户端的用户输入.

我有一个原始数据模型,具有以下结构:

public class User
{
 public int UserId { get; set; }

 [Required]
 [StringLength(20,MinimumLength=3)]
 public string Name { get; set; }

 [Required]
 public double Height { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

此外,我想启用客户端验证,检查它是否是有效数字.因此,我在<head>_Layout.cshtml 的部分添加了以下行.

<script src="@Url.Content("~/Scripts/jQuery-1.4.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

由于我希望能够以另一种语言格式验证输入(在这个特定的上下文中,它的德语是十进制数字格式,0,75而在美国它将是0.75),我添加了以下行(jQuery Globalization PlugIn)AFTER前面提到的jquery.validate.min.jsjquery.validate.unobtrusive.min.js.

<script src="@Url.Content("~/Scripts/jquery.glob.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/globinfo/jquery.glob.de-de.js")" type="text/javascript"></script>
<script type="text/javascript">
 $(document).ready(function () {
  $.culture = jQuery.cultures['de-DE'];
  $.preferCulture($.culture.name);
 });
</script>
Run Code Online (Sandbox Code Playgroud)

另外,为了确保始终选择德国文化,我web.config在该system.web部分添加了以下行:

<globalization …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3 jquery-globalization

11
推荐指数
1
解决办法
6908
查看次数

en-GB日期的不引人注目的验证

我正在使用asp.net MVC4设计一个数据输入表单,它有一个类型为date的输入.

在chrome和jQueryUI datepicker中使用不显眼的jQuery库我仍然收到错误(字段news_date必须是日期.),在选择正确的日期格式后,使用datepicker(即14/02/2013)并提交表单.

一些搜索建议我应该使用jQuery.globilization库.因此,在阅读文档后,我添加了对以下脚本的引用.

$(document).ready(function () {
    $.culture = Globalize.culture("en-GB");
    $.validator.methods.date = function (value, element) {
        return this.optional(element) || Globalize.parseDate(value, "dd/MM/yyyy", "en-GB");
    }
});
Run Code Online (Sandbox Code Playgroud)

但是我仍然得到错误

如果我在chrome中调试上面的代码我可以看到"value"的值是"2014-02-14".

下面是html,它被渲染.

<div class="editor-field">

<input class="text-box single-line datepicker hasDatepicker input-validation-error" data-val="true" data-val-date="The field news_date must be a date." id="news_date" name="news_date" type="date" value="">
<script type="text/javascript">
    $(function () {
        $(".datepicker").datepicker({ dateFormat: "dd/MM/yyyy" });
    });
    </script>
            <span class="field-validation-error" data-valmsg-for="news_date" data-valmsg-replace="true"><span for="news_date" class="" style="">The field news_date must be a date.</span></span>
        </div>
Run Code Online (Sandbox Code Playgroud)

更新:顺便提一下,如果我将验证方法更改为硬编码.即

$.validator.methods.date …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery unobtrusive-validation jquery-globalization asp.net-mvc-4

6
推荐指数
1
解决办法
8298
查看次数

如何让全球化与MVC2和jquery一起工作?

我正在尝试asp.net mvc2应用程序中的一些全球化,但无法让它完全运行.我使用图书馆http://github.com/nje/jquery-glob作为工具,根据用户的意愿显示货币和日期等.然而有些事情让我感到困扰.IU无法使用jQuery实际接受全球化的客户端/服务器端验证.无论我尝试什么,如果我回发40.00一切正常,但如果我发布40,00它被接受为0(不是有效的.NET不变十进制值).我试着按照@haacked指南

这是在服务器端处理的global.asax中:

private void SetCulture(string currencySymbol)
{
    AjaxHelper.GlobalizationScriptPath = 
        http://ajax.microsoft.com/ajax/4.0/1/globalization/";

    var culturePref = "sv-SE";
    var request = HttpContext.Current.Request;

    if (request.UserLanguages == null)
        return;

    var lang = request.UserLanguages[0];
    if (lang != null) {
        try {
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(lang);
        }
        catch {
            Thread.CurrentThread.CurrentCulture = 
                new CultureInfo(culturePref);
        }
    }

    Thread.CurrentThread.CurrentUICulture = 
        Thread.CurrentThread.CurrentCulture;
}
Run Code Online (Sandbox Code Playgroud)

然后在客户端,我包括以下脚本:

<script src="/Scripts/jquery-1.4.2.js" type="text/javascript"></script>
<script src="/Scripts/jquery.glob.js" type="text/javascript"></script>
<script src="/Scripts/globinfo/jquery.glob.sv-SE.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $.culture = jQuery.cultures['sv-SE'];
        $.preferCulture('sv-SE');
    });
</script>
<script src="/Scripts/jquery.validate.js" type="text/javascript"></script> …
Run Code Online (Sandbox Code Playgroud)

globalization asp.net-mvc-2 jquery-globalization

5
推荐指数
1
解决办法
1590
查看次数

Globalize.addCultureInfo不是函数

我正在使用Globalize jQuery插件在MVC网站的客户端上进行全球化(正确的数字和日期格式)。因此,我已经下载了该插件,并在验证js文件本身之后添加了以下javascript文件(我也曾尝试将Globalize文件放在前面,但没有任何运气):

<script src="/Scripts/globalize.js"></script>
<script src="/Scripts/jquery.validate.globalize.min.js"></script>
<script src="/Scripts/globalize/globalize.culture.da-DK.js"></script>
Run Code Online (Sandbox Code Playgroud)

但是当运行应用程序时,我得到了错误

Globalize.addCultureInfo不是函数

我不知道是什么原因

asp.net-mvc jquery-plugins jquery-globalization

5
推荐指数
1
解决办法
3031
查看次数