在jQuery和Razor中使用datepicker设置默认日期(c#)
我们有一个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文本框为空,无法解决此问题。你的建议会有帮助。提前致谢。
我想这是因为日期格式是剃须刀渲染不匹配日期选取期待的格式。
您是否尝试将dateFormat: 'dd/mm/yy'
更改为dateFormat: 'dd-mm-yyyy'
?
..它不是'yyyy'..但'yy' – RNH 2013-03-08 11:45:38
试试这个:
defaultDate: $("#Date_Of_Birth").val();
我想defaultDate只是告诉jQueryUI哪个日期最初应该在打开选择器时被选中,据我所知我吨,问题在于文本框不显示日期(即使在选择器已打开之前) – 2013-03-08 11:16:39
RameshRams,它不工作.. – RNH 2013-03-08 11:23:28
如果您禁用JavaScript,文本框是否有值?这将帮助我们找出Razor或JS中存在的问题。另外 - 哪种格式是Razor将日期输出为? – 2013-03-08 11:12:16
如果我禁用此控件的日期选择器,则日期显示为13-10-1988 00:00:00。 – RNH 2013-03-08 11:18:41
把'console.log(dDate)'放在$(ctrl).datepicker({dateFormat:'dd/mm/yy','。')上面,你会得到什么? – 2013-03-08 11:23:09