2

月と年のみの入力で操作し、DateTextBox に mm/yy 形式を入力するように DateTextBox ウィジェットをプログラミングするのに少し苦労しています。誰かがこれを片付けるのを手伝ってくれますか?

<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/resources/dojo.css" rel="stylesheet" />
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dijit/themes/claro/claro.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" djConfig="parseOnLoad:true"></script>

<body class="claro">

  <div id="dt_text" data-dojo-type="dojox/form/DateTextBox" data-dojo-props="popupClass: 'dojox/widget/MonthAndYearlyCalendar'">
  </div>

このDateTextBox JSFiddleは、これまでの私の努力の弱さを示しています。これらのウィジェットを使用せずに mm/yy テキストボックス入力を取得する別の方法も同様に歓迎されます。

明確にするために、代替ルートを使用する場合、重要なのは、選択した日付をテキストボックスに挿入するために使用できる適切な mm/yy ポップアップです。さまざまな種類のテキスト ボックス djit には精通していますが、日付セレクター ポップアップには慣れていません。

私は Dojo 1.8 を使用していますが、アップグレードできません。回答をこのバージョンと互換性のあるものにしてください。

4

3 に答える 3

3

スクリーンショット付きの 2 つのモジュールを用意しました。どちらも要件に一致します。

  • めまぐるしく変わる年
  • 月と年の選択が簡単
  • スキップして日付を選択

モジュール:

  1. DateTextBoxMonthAndYearlyCalendar ビューを使用
  2. MonthTextBox
    <link rel="stylesheet" href="scripts/dojo/dojox/grid/resources/claroGrid.css">
    <link rel="stylesheet" href="scripts/dojo/dojox/widget/Calendar/Calendar.css">

    <script>
        dojo.require("dojox.widget.MonthAndYearlyCalendar");
    </script>

    <body class="claro">
        <input type="text" name="monthNyear" value="11/2013" data-dojo-type="dojox/form/DateTextBox" data-dojo-props="constraints:{datePattern: 'MM/yyyy'}, popupClass:'dojox.widget.MonthAndYearlyCalendar'" />
        <input type="text" name="monthOnly" value="11" data-dojo-type="dojox/form/MonthTextBox" />
    </body>
于 2013-07-15T04:49:50.800 に答える
1

<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/resources/dojo.css" rel="stylesheet" />
<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dijit/themes/claro/claro.css" rel="stylesheet" />
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" djConfig="parseOnLoad:true"></script>

<body class="claro">
  <input type="text" name="skippedDay" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="constraints:{datePattern:'yyyy-MM'}" value="2013-12" />

yyyy-MMPS: フォーマットに合わせてtoを変更できMM-yyyyます。しかし、私はそれを試しました。デフォルト値は無視されます。(バージョン 1.8.3)。

PS2: ユーザーはポップアップ カレンダーで日を選択する必要がありましたが、テキスト ボックスが表示されず、その日が送信されません。

于 2013-07-14T15:03:08.233 に答える