1

我们有一个 common.js 文件,其中包含常用的 client/jquery 相关功能和验证。这个 common.js 包含在 _Layout.cshtml 中。在这个 common.js 文件中,我们有 datepicker 代码,以保持应用程序的一致性,如下所示,

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 函数。

加载表格时,出生日期文本框为空白,无法破解。您的建议会有所帮助。提前致谢。

4

2 回答 2

1

我认为这是因为 razor 渲染的 dateFormat 与日期选择器期望的格式不匹配。

您是否尝试过更改dateFormat: 'dd/mm/yy'dateFormat: 'dd-mm-yyyy'?

于 2013-03-08T11:39:53.950 回答
0

尝试这个:

defaultDate: $("#Date_Of_Birth").val();
于 2013-03-08T11:12:24.263 回答