0

我們在MVC項目上使用JQuery UI日期選擇器來填充隱藏表單字段,該字段構成了我們模型的一部分。我們遇到的問題是發生ModelState錯誤並且用戶返回到它們提交的原始表單(使用預先填充的值)時,JQuery UI日期選擇器將恢復爲當前日期。我們需要這個來顯示用戶選擇的日期。我們將如何去做這件事?將jquery datepicker設置爲在modelstate上選擇的以前的值error

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 is not a function http://localhost:49438/scripts/jquery-ui.min.js Line 8

任何有關這個問題的幫助將大大增值編輯。

回答

0

defaultDate期望一個字符串值,你傳遞給它一個函數。

你應該嘗試執行的功能等:

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

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