1
MVCで、私のビューの共有フォルダにあるエディタテンプレートを使用して、datepickerを有効にします。 私のDate.cshtmlはこのように見えます。jqueryがjqueryを非表示にして日付フィールドを表示した後、JQuery DatePickerが起動しない
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToLongDateString() : string.Empty,
new { @class = "datefield", type = "date", style = "width:200px;" })
私の見解では、
<td class="rightCell">
@Html.EditorFor(model => model.Assessment.SsipAccreditationDate)
@Html.ValidationMessageFor(
model => model.Assessment.SsipAccreditationDate, "*")
</td>
このフィールドは
[DataType(DataType.Date)]
[DisplayName("SSIP Accreditation Date")]
public DateTime? SsipAccreditationDate { get; set; }
そして、これはそれを参加するスクリプトとしてビューモデルで定義されています。
var initialiseDate = function() {
$(".datefield").datepicker({
showOn: "both",
dateFormat: "dd MM yy",
changeMonth: true,
changeYear: true
}).next("button.ui-datepicker-trigger")
.attr("tabIndex", "-1");
}
そして問題は、日付ピッカーが既にそこにある場合にのみポップアップすることです。フィールドがnullの場合、ポップアップしません。
開発ツールでは、フィールドのマークアップは次のようになります。
<input name="Assessment.SsipAccreditationDate" class="datefield hasDatepicker" id="Assessment_SsipAccreditationDate" style="width: 200px;" type="date" value="" data-val="true" data-val-date="The field SSIP Accreditation Date must be a date.">
<button tabindex="-1" class="ui-datepicker-trigger" type="button">...</button>
<span class="field-validation-valid" data-valmsg-replace="false" data-valmsg-for="Assessment.SsipAccreditationDate">*</span>
何が問題になりますか?
EDIT - 問題の重要な部分は、jqueryで日付を表示して非表示にすることで違いがあるようです。別のページでは、この日付フィールドにこの問題はありません。
こんにちはエミルを推測ヌルが好きではありません、私は質問を編集しました私は、このことが起こる際の重要な要素は、jqueryでは日付フィールドを非表示にして表示していますが、これは違いになりますが、理由はわかりません。日付フィールドを表示すると、datepickerが確実に動作するようにinitialiseDate関数が再度呼び出されますが、そうではありません。 – arame3333