私は現在、ユーザーが毎月1日から毎月28日までの日付を選択するように制限したいjQuery日付ピッカーに取り組んでいます。
28日以降の残りの日付は選択できません。これを実現したいと考えています。私がそれを行うことができる方法はありますか?
考えてみると、Modelクラスの日付変数にデータ注釈を付けようとしていましたが、その方法がわかりません。より洗練されたように見えると思われる他のオプションは、日付ピッカーが表示されている間、不要な日付を選択できないようにすることです。
私は現在、ユーザーが毎月1日から毎月28日までの日付を選択するように制限したいjQuery日付ピッカーに取り組んでいます。
28日以降の残りの日付は選択できません。これを実現したいと考えています。私がそれを行うことができる方法はありますか?
考えてみると、Modelクラスの日付変数にデータ注釈を付けようとしていましたが、その方法がわかりません。より洗練されたように見えると思われる他のオプションは、日付ピッカーが表示されている間、不要な日付を選択できないようにすることです。
最初に html/js がどのようになるか見てみましょう。そのため、datepicker の beforeShowDay プロパティを使用して、表示できる日を制限します
JavaScript
$('#date').datepicker({
beforeShowDay: function(date){ return [date.getDate() <= 28,""];}
})
html
<input id="date" type="text" value="">
これは、これを示すjs フィドルhttp://jsfiddle.net/dWaLq/です。関連する jquery ui ドキュメントは次のとおりです: http://api.jqueryui.com/datepicker/#option-beforeShowDay
javascript/html をビューに接続する方法はいくつかあります。
1 つのオプションは、UIHintAttribute を使用して、日付プロパティで使用するビューモデルを指定することです。
ビューモデルで
[UIHint("LimitedDate")]
public DateTime date {get;set;}
そしてあなたの見解では
@Html.EditorFor(m => m.date)
Views > Shared > Editor フォルダーにカスタム ビュー LimitedDate.cshtml が作成されます。
@model DateTime
@{var fieldName = ViewData.TemplateInfo.HtmlFieldPrefix;}
<input id="@fieldName" name="@fieldName" type="text" value="@Model.ToString('d')">
<script>
$('#' + '@fieldname').datepicker({
beforeShowDay: function(date){ return [date.getDate() <= 28,""];}
})
</script>
プロパティ名をエディターに取得する方法の詳細については、MVC3 カスタム エディター テンプレートでプロパティ名を取得する方法を参照してください。