在MVC中回发后,JQuery DatePicker无效

时间:2014-01-24 14:54:28

标签: jquery asp.net-mvc jquery-ui-datepicker

我正在使用MVC 1应用程序,我有一个视图,我单击一个保存按钮然后发生服务器端验证,但之后我的日期文本框不起作用。

我在MVC-View页面中使用了JQuery作为日期文本框。

任何人都可以建议我如何做到这一点。

$(function () { 
    $("input[id*=DateFrom]").datepicker({ dateFormat: 'dd-M-yy' }, 
    { changeMonth: true }, 
    { changeYear: true }); 
});

$(function () { 
    $("input[id*=DateTo]").datepicker({ dateFormat: 'dd-M-yy' },
     { changeMonth: true },
     { changeYear: true }); 
});

3 个答案:

答案 0 :(得分:0)

使用此

$("#elementID").datepicker({
    changeMonth: true,
    changeYear: true    
});

答案 1 :(得分:0)

Jaskaran是正确的,但您也在使用jQuery UI的无效日期格式:

dateFormat: 'dd-M-yy'

应该是这样的:

dateFormat: 'dd-M-y'

答案 2 :(得分:0)

在这种情况下,MVC框架无关紧要。这只是一个HTML + Javascript问题。

理想情况下,您应该为选择器使用类名称,以将相同的日期选择器功能应用于多个项目。 (除非你喜欢多次编写相同的代码)

此代码假定您有2个输入,如下所示:

<input id="DateStart" type="text" class="datepicker" />
<input id="DateEnd" type="text" class="datepicker" />

$(function () { 
    $('.datepicker').datepicker({ 
       dateFormat: 'dd-M-yy', 
       changeMonth: true, 
       changeYear: true 
    }); 
});

但是,为了诊断您的功能损坏......

这是一个完整的回发场景,还是部分页面AJAX更新?

如果是部分页面Ajax更新,则可能导致问题的原因是输入元素被删除,然后在部分页面更新后添加回DOM。

$(function(){...})是document.ready回调的缩写。这意味着代码仅在首次从服务器加载页面时执行。

加载页面后添加到页面的任何项目都不会受到该代码的影响。

如果您正在进行整页回发,那么您的问题的可能原因是您的javascript中的某个其他地方的错误,导致上述代码无法执行。

您是否尝试使用Firebug或任何其他Web调试实用程序来检查错误?