2013-03-08 151 views
1

我們有一個common.js文件,其中包含常用的客戶端/ jQuery相關函數和驗證。這個common.js包含在_Layout.cshtml中。在這個common.js文件中,我們有日期選擇器的代碼,以保持整個應用程序一致性,如下,在jQuery和Razor中使用datepicker設置默認日期(c#)

function OsDatepicker(id, date, maxdt, dDate) { 
    var ctrl = "#" + id; 
    var d = new Date(); 

    var currYear = d.getFullYear(); 
    if (date == 0) 
     var yrrange = (parseInt(currYear) - 4) + ":" + (parseInt(currYear) + 2); 
    else 
     var yrrange = (parseInt(currYear) - 70) + ":" + (currYear); 

    $(ctrl).datepicker({ dateFormat: 'dd/mm/yy', 
     changeYear: true, 
     autoSize: true, 
     yearRange: yrrange, 
     constrainInput: true, 
     showOn: "both", 
     buttonImage: '../../../Content/images/Calendar.png', 
     buttonImageOnly: true, 
     showanim: "slide", 
     //defaultDate: dDate, //not working 
     inline: true 
    }); 

    if (maxdt == 0) 
     $(ctrl).datepicker("option", "maxDate", "+0d"); 

    $(ctrl).datepicker("option","setDate", new Date(dDate)); //not working 
} 

上述函數被調用,如下圖所示CSHTML腳本,

$(document).ready(function() { 
var dobDate = $("#Date_Of_Birth").val(); 
var jtDate = dobDate.split(" "); 
OsDatepicker('Date_Of_Birth', 1, 0, jtDate[0]); 
}); 

我的剃刀代碼如下,對於出生

<div style="width: 260px; float: left; height: 45px;"> 
    <label class="field_title"> 
     @Html.LabelFor(model => model.Date_Of_Birth)</label> 
    <div class="form_input"> 
     @Html.EditorFor(model => model.Date_Of_Birth) 
     @Html.ValidationMessageFor(model => model.Date_Of_Birth) 
    </div> 
</div> 

日期的上述標記是如下,

<input class="text-box single-line" id="Date_Of_Birth" name="Date_Of_Birth" type="text" value="13-10-1988 00:00:00" /> 

正如您所看到的模型正確提取日期,也正確地傳遞給OSDatepicker函數。

在加載表單時,DateofBirth文本框爲空,無法解決此問題。你的建議會有幫助。提前致謝。

+0

如果您禁用JavaScript,文本框是否有值?這將幫助我們找出Razor或JS中存在的問題。另外 - 哪種格式是Razor將日期輸出爲? – 2013-03-08 11:12:16

+0

如果我禁用此控件的日期選擇器,則日期顯示爲13-10-1988 00:00:00。 – RNH 2013-03-08 11:18:41

+0

把'console.log(dDate)'放在$(ctrl).datepicker({dateFormat:'dd/mm/yy','。')上面,你會得到什麼? – 2013-03-08 11:23:09

回答

1

我想這是因爲日期格式是剃鬚刀渲染不匹配日期選取期待的格式。

您是否嘗試將dateFormat: 'dd/mm/yy'更改爲dateFormat: 'dd-mm-yyyy'

+0

..它不是'yyyy'..但'yy' – RNH 2013-03-08 11:45:38

0

試試這個:

defaultDate: $("#Date_Of_Birth").val(); 
+1

我想defaultDate只是告訴jQueryUI哪個日期最初應該在打開選擇器時被選中,據我所知我噸,問題在於文本框不顯示日期(即使在選擇器已打開之前) – 2013-03-08 11:16:39

+0

RameshRams,它不工作.. – RNH 2013-03-08 11:23:28

相關問題