0

JQueryui Datepicker を使用しています。ただし、入力フィールドに手動で入力された値には実際には影響しません。入力フィールドでマスク/検証を指定するために同じ(クライアント)コードを使用できる方法はありますか(データピッカーが使用されていない場合-日付ピッカーが正しい形式を出力するだけではありません)。

JQueryフレームワークでこれを行うための最も一貫した方法は何ですか?

ありがとう

備考

  1. jQueryは入力にいくつかの制約を課しているようです(つまり、数字マスク「yymmdd」しか入力できません)ので、主なことは検証を取得することです。
4

4 に答える 4

0

日付ピッカーのformatDateオプションを使用できます:http://docs.jquery.com/UI/Datepicker/formatDate

于 2009-03-25T09:30:22.263 に答える
0

Validateプラグインを使用していると仮定すると、選択可能な日付を決定するためのui.Datepicker独自のロジックを再実装するカスタムルールを記述できます。私は今日これを書かなければならなかった、そして他の誰かが方法を知ることから利益を得ることができると考えた:

jQuery.validator.addMethod("vdate", function(value, element) {
    // Datepicker's internal method for choosing selectable ported to a custom validator method.
    // All criteria are the same, except othermonth is omitted.
    var inst =          $.data(element,'datepicker'); // instance data used internally by datepicker's functions
    var printDate =     $(element).datepicker("getDate");
    var minDate =       $.datepicker["_getMinMaxDate"](inst, 'min', true);
    var maxDate =       $.datepicker["_getMinMaxDate"](inst, 'max');
    var beforeShowDay = $.datepicker["_optionDatepicker"](element,'beforeShowDay');
    var daySettings =   (beforeShowDay ? beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
    var unselectable =  (!daySettings[0] || (minDate !=null && (printDate < minDate)) || (maxDate !=null && (printDate > maxDate)));
    return (this.optional(element) || !unselectable);
}, "Please choose a valid date");

この特定のaddMethodには、各フィールドを個別にチェックするという利点があるため、クラス名'vdate'を共有する複数のdatepickerがあり、minDate / maxDate / beforeShowDay設定が異なる場合、Validateは各datepickerの独自のルールをチェックして従います。

また、beforeShowDayに複雑な関数を記述して、週末、素数の日、妻の誕生日、毎月の最終日を除外した場合、ui.Datepickerで機能する限り、Validateはそれらすべてを認識します。無効な日付としても。

于 2010-03-26T23:01:50.810 に答える
0

jQuery 検証プラグインを使用します。UI 日付ピッカーと共存します。アプリケーションでこれを行います。デフォルトの日付バリデーターは、「2009 年 2 月 40 日」などの明らかに無効な日付にフラグを立てないことに注意してください。JavaScript 日付パーサーを使用しているため、受け入れる内容が少し緩いためです。しかし、デフォルトのバリデーターを独自のものに置き換えるのは本当に簡単です。

于 2009-03-25T12:38:03.967 に答える
0

可能な限り単純なことをできない理由はありますか?

日付フィールドのぼかしなどのイベントにフックし、以下のように値を確認します。

  1. 入力の長さを形式と比較します。
  2. 日付を解析し、日付オブジェクトの作成を試みて、日付が実際の日付であることを確認します。
于 2015-06-24T16:11:11.497 に答える