【问题标题】:Set Jquery datepicker to previous value selected on modelstate error将 Jquery datepicker 设置为在模型状态错误上选择的先前值
【发布时间】:2015-11-30 16:18:26
【问题描述】:

我们在 MVC 项目上使用 JQuery UI 日期选择器来填充构成我们模型一部分的隐藏表单字段。我们遇到的问题是,当发生 Modelstate 错误并且用户返回到他们提交的原始表单(使用他们选择的预先填充的值)时,JQuery UI 日期选择器将恢复为当前日期。我们需要它来显示用户选择的日期。我们该怎么做呢?

HTML

    <div class="col-md-2">
         @Html.LabelFor(model => model.Departure_Date, new { @class = "control-label required" })                 
    </div>
    <div class="col-md-3">
        <div id="datepicker" class="dateDeparture"></div>
        @Html.HiddenFor(model => model.Departure_Date, new { id = "departureDate"})
    </div>

Javascript

$(".dateDeparture").datepicker({
    altField: "#departureDate",
    defaultDate: setDate,
    dateFormat: "mm/dd/yyyy"
});

function setDate(){
   var date = $('#departureDate').value;
   if(date == ""){
       date = new Date();
   }
   return date;
}

正如您在上面看到的,我们尝试获取隐藏字段的值,然后使用它来设置日期选择器上的日期,但这不起作用,我们收到以下错误:

TypeError: i.getTime 不是函数 http://localhost:49438/scripts/jquery-ui.min.js8号线

对于这个问题的任何帮助将不胜感激。

【问题讨论】:

    标签: c# .net jquery-ui model-view-controller jquery-ui-datepicker


    【解决方案1】:

    defaultDate 需要一个字符串值,你将它传递给一个函数。

    您应该尝试执行如下功能:

    $(".dateDeparture").datepicker({
        altField: "#departureDate",
        defaultDate: setDate(),
        dateFormat: "mm/dd/yyyy"
    });
    
    function setDate(){
       var date = $('#departureDate').value;
       if(date == ""){
           date = new Date();
       }
       return date;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 2012-06-27
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多