1

一般的に使用されるclient/jquery関連の関数と検証を含むcommon.jsファイルがあります。この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関数にも正しく渡されています。

フォームをロードすると、DateofBirthテキストボックスが空白になり、これをクラックできなくなります。あなたの提案は役に立ちます。前もって感謝します。

4

2 に答える 2

1

これは、かみそりがレンダリングしている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 に答える