1

フォームの検証にjQueryValidationEngineを使用しています。ここに、デモのリンクがあります。

https://github.com/posabsolute/jQuery-Validation-Engine

2つのテキストボックスがあります。1つは開始日用で、もう1つは終了日用です。を超えてはならず、未満であってstart-dateはならないことをend-date検証したいと思い ます。end-datestart-date

検証がある場合は教えてください。

4

4 に答える 4

3

Date値をオブジェクトに変換します。次に、それを使用して比較できます。Unixタイムスタンプか何かに変換します...

詳細については、httpsDate: //developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Dateを参照してください。

編集:私が何を意味するかについての詳細を含めます.... jQuery検証エンジンページのバリデーターセクションで、funcCall[methodName]を説明している部分を探します。

funcCall[methodName] -サードパーティの関数呼び出しを使用してフィールドを検証します。検証エラーが発生した場合、関数はエラープロンプトに自動的に表示されるエラーメッセージを返す必要があります。

したがって、そのフィールドに関数ハンドラーをアタッチすると、その関数は日付を取得して比較します。

<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,funcCall[checkDates]]" type="text" id="enddate" name="enddate" />

ページのどこかに、JavaScrip関数があります。

var checkDates = function(field, rules, i, options) {
    // Do your date comparisons here between startdate and enddate values
};

編集#2

またあります:

past [NOW、日付または別の要素の名前] -要素の値(暗黙的に日付)が指定された日付よりも前であるかどうかを確認します。「NOW」をパラメータとして使用すると、ブラウザで日付が計算されます。「#fieldname」が使用されている場合(「#」はオプション)、要素の値を同じフォーム内の別の要素の値と比較します。これはサーバーの日付とは異なる場合があることに注意してください。日付はISO形式YYYY-MM-DDを使用します

future [NOW、日付または別の要素の名前] -要素の値(暗黙的に日付)が指定された日付より大きいかどうかを確認します。「NOW」をパラメータとして使用すると、ブラウザで日付が計算されます。「#fieldname」が使用されている場合(「#」はオプション)、要素の値を同じフォーム内の別の要素の値と比較します。これはサーバーの日付とは異なる場合があることに注意してください。日付はISO形式YYYY-MM-DDを使用します

それがあなたの好みに合うなら、ここにマークアップがあります:

<input value="" class="validate[required,past[#enddate]]" type="text" id="startdate" name="startdate" />
<input value="" class="validate[required,future[#startdate]]" type="text" id="enddate" name="enddate" />
于 2013-03-08T05:53:39.380 に答える
0

Jquery UI で日付範囲を使用します。これを参照してくださいhttp://jqueryui.com/datepicker/#date-range

于 2013-03-08T05:54:15.453 に答える