2016-11-09 13 views
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で日付を表示して非表示にすることで違いがあるようです。別のページでは、この日付フィールドにこの問題はありません。

答えて

0

現在の値がnullセット

$("#datefieldid").val(''); 

これは物事を変更しますある場合

を試すには、datapicket iが

+0

こんにちはエミルを推測ヌルが好きではありません、私は質問を編集しました私は、このことが起こる際の重要な要素は、jqueryでは日付フィールドを非表示にして表示していますが、これは違いになりますが、理由はわかりません。日付フィールドを表示すると、datepickerが確実に動作するようにinitialiseDate関数が再度呼び出されますが、そうではありません。 – arame3333

関連する問題