2

Dijit.Form.DateTextBoxに関する簡単な質問

http://docs.dojocampus.org/dijit/form/DateTextBox

このページには、次の内容が含まれています。「最小、最大、有効な曜日など、開発者が提供する制約に対しても検証します。」

曜日に制約を与えることができるドキュメントが見つからないようです。たとえば、ユーザーが日曜日に発生する日付のみを選択できるDateTextBoxが必要です。

これについて助けていただければ幸いです。ありがとう!

4

3 に答える 3

4

これについてソースコードを詳しく調べましたが、マニュアルは少し誤解を招く可能性があると思います.オブジェクトの制約を使用してこれを行う方法はありません. ユーザー フォーラムからの次の引用は、私の調査結果を裏付けているようです。

現在、DateTextBox では isDisabledDate をカスタマイズできません。最小/最大のみを設定できます。独自の isDisabledDate 実装を提供し、検証中にチェックするには、おそらく DateTextBox にパッチを適用するかサブクラス化する必要があります。

このような DateTextBox のサブクラスの例は、http: //dojotoolkit.org/forum/dijit-dijit-0-9/dijit-support/datetextbox-mondays-only-selectable#comment-19508 で確認できます。

それが面倒なら、DateTextBox は dijit.form.ValidationTextBox から派生しているので、このウィジェットの regExpGen を使用してバリデーターを作成できます - 無効な日付を選択するのを防ぐことはできませんが、dijit がウィジェットにマークを付ける原因になります。無効として、ユーザーに「入力された値は無効です」と表示されます。

dijit.byId('toDate').regExpGen = function() {
  if (dojo.date.locale.format(this.value, {datePattern: "E", selector: "date"}) == 6)
    戻る "。*";
  「0」を返します。
}
于 2009-05-19T05:53:19.820 に答える
2

たまたま、内部のオブジェクトのisDisabledDate関数はそれ自体を呼び出すだけです。したがって、あなたの目的のために、これはうまくいくでしょう:CalendarDateTextBoxrangeCheckDateTextBox

dijit.byId('toDate').rangeCheck = function(date,constraints) {
  var day=date.getDay();
  return day===0;
}

最小/最大のものも必要な場合は、制約ロジックを追加し直す必要がありますが、これにより、前述の問題が解決され、かなり短いものになります。

于 2013-02-20T23:38:32.583 に答える
1

早く手に入れたい機能

http://bugs.dojotoolkit.org/ticket/4765

于 2009-09-03T17:54:33.780 に答える