Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用globalize库脚本进行MVC3日期验证_Javascript_Asp.net Mvc 3 - Fatal编程技术网

Javascript 使用globalize库脚本进行MVC3日期验证

Javascript 使用globalize库脚本进行MVC3日期验证,javascript,asp.net-mvc-3,Javascript,Asp.net Mvc 3,我试图让我的MVC3、EF4项目与javascript日期选择器一起工作,但我遇到了一些问题,因为我希望日期采用英国格式(dd/mm/yyyy) 我花了几个小时研究这个问题,并决定实现我在本文中看到的“globalize”库脚本 但是,我得到了一个未捕获类型错误:当我运行它时,无法读取javascript中未定义的的属性“methods”(来自$.validator.methods.date行)。我对javascript的了解非常有限,我发现使用“globalize”库的所有示例都没有提到这个错

我试图让我的MVC3、EF4项目与javascript日期选择器一起工作,但我遇到了一些问题,因为我希望日期采用英国格式(dd/mm/yyyy)

我花了几个小时研究这个问题,并决定实现我在本文中看到的“globalize”库脚本

但是,我得到了一个
未捕获类型错误:当我运行它时,无法读取javascript中未定义的
的属性“methods”(来自
$.validator.methods.date
行)。我对javascript的了解非常有限,我发现使用“globalize”库的所有示例都没有提到这个错误,因此我感到非常困惑

我已在下面的视图中显示了相关代码:

<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>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.en-GB.js")" type="text/javascript"></script>

<link href="../../Content/themes/base/jquery.ui.all.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
    Globalize.culture("en-GB");
    $.validator.methods.date = function (value, element) { return this.optional(element) || Globalize.parseDate(value); }
</script>

<script type="text/javascript">
    $(document).ready(function () {
        $('.date').datepicker({ dateFormat: "dd/mm/yy" });
    });
</script>

//SNIP

<div class="editor-field">
    @Html.TextBox("Expires", Model.Expires, new { @class = "date" })
    @Html.ValidationMessageFor(model => model.Expires)
</div>

全球化。文化(“en GB”);
$.validator.methods.date=函数(值,元素){返回此.optional(元素)| | Globalize.parseDate(值);}
$(文档).ready(函数(){
$('.date').datepicker({dateFormat:“dd/mm/yy”});
});
//剪断
@TextBox(“Expires”,Model.Expires,new{@class=“date”})
@Html.ValidationMessageFor(model=>model.Expires)
有人能帮我解决这个问题吗


非常感谢。

我已经有一段时间没有使用Globalize库了,但我觉得它对您来说可能太过分了——假设您只需要en GB格式的日期值,下面的Javascript/jQuery代码就可以了(并且:


获得价值
$(文档).ready(函数(){
/*初始化日期选择器时正确设置了日期格式*/
$('.date').datepicker({dateFormat:“dd/mm/yy”});
/*为按钮的“单击”功能创建事件处理程序*/
$('btnGetVal')。在('click',function()上{
/*事件处理程序*/
var targetValue=$('.date').val();
警报(目标值);
});
});
我用jQuery2.1.0和jQueryUI1.10.4测试了这一点——您可能需要更新这两个版本的NuGet包(我发现您使用的是非常旧的jQuery版本,所以我假设您需要支持IE8,或者使用的是旧版本的MVC)

另一方面,您可能希望确保在document.ready()函数中初始化所有Javascript代码,以便在加载时可以访问所有函数(因为在初始化datepicker()时无法访问您的Globalize代码。我建议您在此处阅读更多内容:

<input type="text" class="date" placeholder="en-gb datepicker" />
<button id="btnGetVal">Get Value</button>

<script type="text/javascript">
$(document).ready(function () {
    /* you correctly have the date format set when initializing the datepicker */
    $('.date').datepicker({ dateFormat: "dd/mm/yy" });
    /* create an event handler for the "click" function of the button */
    $('#btnGetVal').on('click', function() {
       /* event handler */
       var targetValue = $('.date').val();
       alert(targetValue);
    });
});
</script>