2

私は現在、ユーザーが毎月1日から毎月28日までの日付を選択するように制限したいjQuery日付ピッカーに取り組んでいます。

28日以降の残りの日付は選択できません。これを実現したいと考えています。私がそれを行うことができる方法はありますか?

考えてみると、Modelクラスの日付変数にデータ注釈を付けようとしていましたが、その方法がわかりません。より洗練されたように見えると思われる他のオプションは、日付ピッカーが表示されている間、不要な日付を選択できないようにすることです。

4

1 に答える 1

2

最初に 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 カスタム エディター テンプレートでプロパティ名を取得する方法を参照してください。

于 2013-07-01T03:19:02.250 に答える