2013-04-03 7 views
7

私はhereというdatetimepickerプラグインを使用していますが、これはうまく動作します。jquery validate datetimeを検証するためのメソッドを追加

唯一の問題は、入力ボックスの文字列の末尾に時間が追加されているため、jquery validation pluginに含まれている標準の日付検証が壊れてしまうことです。

ここまではdemoです。値が日付かどうかをチェックする検証メソッドを追加しましたが、時刻を受け付けません。

私はカスタムバリデーションメソッドを書く際に助けが必要です。 dateとの文字列を分割して、それを検証するテストを実行するにはどうすればよいですか?あなたが言及した

おかげ

+0

あなたjsFiddleには機能して日付ピッカーはありません。 – Sparky

+0

@ Sparky DateTimePickerアドオンサイトを参照しようとすると、禁止されてしまいます。ライブラリを指す代わりにアップロードする方法はありますか?私は推測していない。 –

+0

もう一度やっています。 –

答えて

17

http://www.datejs.com/は、日付といくつかのばかげたシンタックスシュガーを検証する方法のアウトスタンディング数を持っています。そうでなければ、あなたはそれを得るために、jQueryの検証プラグイン内部を見ることができます:ここで

date: function(value, element) { 
    return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()); 
}, 

は、私はあなたの文字列のtime部分を検証するための見つけカスタムメソッドです。

$.validator.addMethod("time", function (value, element) { 
    return this.optional(element) || /^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(:([0-5]?[0-9]))?$/i.test(value); 
}, "Please enter a valid time."); 

時間デモ:http://jsfiddle.net/9CdvN/

単にあなたの "日時" メソッドに二つの機能を兼ね備えています。その後、入力値をスペースで分割し、それに応じて各パーツをテストします。


ここでは、&のTimeメソッドを組み合わせたデモです。それは、次の形式を受け入れる:yyyy/mm/dd hh:mm、あなたはちょっとそれを微調整する必要があります。

http://jsfiddle.net/9CdvN/2/

1

日時ピッカーが、それはjQueryのUIのDatePickerのウィジェットを使用していますと言います。ウィジェットから受け取る日付の形式は、ui datepicker API、具体的にはdateFormat methodを使用して制御できます。

日付ピッカーを設定して、検証に必要な形式で日付を入力できるようにする必要があります。

希望に役立ちます!

+0

日付と時刻の形式を設定しても、正しく検証されません。私は本当に複合DateとTime文字列を処理するカスタム検証メソッドが必要になると思っています。 –

1

プラグインの切り替えをお勧めしますか?あなたは既にdateルールの検証を持って

// Convert text into Date 
Date.parse('today'); 
Date.parse('t + 5 d'); // today + 5 days 
Date.parse('next thursday'); 
Date.parse('February 20th 1973'); 
Date.parse('Thu, 1 July 2004 22:30:00'); 
+0

私はそのプラグインを見て、それが私のニーズに合っているかどうかを見ていきます。ありがとう –

+0

@ Wartickler-ライブラリはまだアルファの状態です。それは良いようですが、私はより成熟したものを望みます。ありがとう –

+0

それはJavascriptです! (でも、jQueryスタイル)あなたはもっともっと成熟していますか? (O; – Kristopher

関連する問題