2016-04-18 16 views
0

ありがとうございました入力タイプ=日付を設定する

私の質問はどのようにタイプ日付の値入力を設定するのですか?それはプログラムが、私は、デバッガ画面から値がString.Emptyのある参照実行すると、私は

$(document).ready(function() { 
    debugger; 
    var date = $('#StartDate').val(); 
    var dt = new Date(date); 
    var day = parseInt(dt.getDate()); 
    var month = parseInt(dt.getMonth() + 1); 
    var year = parseInt(dt.getFullYear()); 

    if (day < 10) { day = '0' + day } 
    if (month < 10) { month = '0' + month } 
    var setDate = year + '-' + month + '-' + day; 

    $('#StartDate').val(setDate); 
}); 

、このようにいくつかのコードを作っ実行

<input class="form-control text-box single-line" data-val="true" data-val-date="The field Date must be a date." data-val-required="The Date field is required." id="StartDate" name="StartDate" type="date" value=""> 

後に来ること

@Html.EditorFor(model => model.StartDate, new { htmlAttributes = new { @class = "form-control", @type = "date" } }) 

var date = ""; 

また、Iこれをもう一度フォーマットエラーの下の部分を取り除こうとしました。

var dt = new Date(date); 

しかし、私は仕事をしませんでした。 誰かがこの回答を知っている場合 私は本当に助けが必要です 最後に表示されているデータですが、形式が異なるために 値が表示されません。 この必要書式(yyyy-MM-dd)

ありがとうございます。

+2

'@Html.TextBoxFor'を使ってみましたか?あなたのレンダリングされたhtmlは 'value =" "'空です。だからあなたのスクリプトにも空です –

+1

あなたの試みは何ですか?テキストボックスに値を表示する場合は、モデルをビューに渡す前に、コントローラに「StartDate」の値を設定します。また、フォーマットする場合は、 'DisplayFormatAttribute'(または' TextBoxFor(m => m.StartDate、 "{0:yyyy-MM-dd}"、新しい{...})を使用してください) –

+1

@Reddy君は。 – Selman

答えて

1

スクリプトは不要であり、財産StartDateはNULL DateTime?であり、値はありませんので、(あなたのHTMLがvalue=""を持っている)、その後var dt = new Date(date);Invalid datevar date = $('#StartDate').val();ために戻っnull、スクリプトが失敗を返します。

あなたがビューにモデルを渡す前に、例の入力で今日の日付が表示されます

var model = new MyModel() { StartDate = DateTime.Today }; 
return View(model); 

のために、コントローラにStartDateの値を設定する必要があります。

必要な形式を表示するためには、あなたはそれは方法によって追加されるようDataTypeAttributeがあなたのEditorFor()方法からtype="date"を省略することができることを意味追加DisplayFormatAttribute

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
[DataType(DataType.Date)] 
public DateTime? StartDate { get; set; } 

ノートを追加することができます

あるいは、両方の属性を省略して使用することもできます。

@Html.TextBoxFor(m => m.StartDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" }}) 
関連する問題