2013-04-03 13 views
7

Çok iyi çalışan here bulduğum bir datetimepicker eklentisi kullanıyorum.jquery validate datetime değerini doğrulamak için yöntem ekleyin

Artık tek sorun, giriş kutusundaki dizenin sonuna eklenen süre nedeniyle jquery validation plugin ile verilen standart tarih doğrulamasını bozmasıdır.

Şu ana kadar demo numaralı telefondan neyim var. Değerin tarih olup olmadığını kontrol eden bir doğrulama yöntemi ekledim, ancak zamanı kabul etmiyor.

Özel doğrulama yöntemini yazmak için yardıma ihtiyacım var. date ve time dizesini nasıl bölerim ve sonra bunları doğrulamak için testleri gerçekleştiririm?

Teşekkür

+0

sizin jsFiddle alanınızda çalışan tarih seçici yoktur. – Sparky

+0

@Sparky Ben DateTimePicker addon sitesine göz atmaya çalıştığımda bir Yasak olsun. Kitaplığı işaret etmek yerine yüklemek için bir yolu var mı? Tahmin etmiyorum. –

+0

Yine çalışıyor. –

cevap

17

: http://www.datejs.com/ tarihleri ​​ve bazı saçma sözdizimsel şeker doğrulamak için yollar olağanüstü bir numarası vardır. Aksi halde, o elde etmek jQuery Doğrula eklentisi içine bakabilirsiniz:

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

Ben senin dize time kısmını doğrulamak için bulunan özel bir yöntemdir.

$.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."); 

Zaman Demosu: http://jsfiddle.net/9CdvN/

Basitçe "DateTime" yöntem haline iki işlevi birleştirir. Sonra giriş değerinizi boşlukta bölün ve her parçayı uygun şekilde test edin.


Burada birlikte tarihi & Saat yöntemlerini bir araya getirdik bir demo. Aşağıdaki formatı kabul eder, yyyy/mm/dd hh:mm, bu yüzden biraz düzeltmeniz gerekecek.

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

1

Bahsettiğiniz tarih saat seçici o jQuery UI datepicker widget'ı kullanır diyor. Ui datepicker API'sini, özellikle dateFormat method'u kullanarak widget'tan aldığınız tarihin biçimini kontrol edebilirsiniz.

Doğrulama için gereken biçimde bir tarih sağlamak için datepicker'ı yukarı ayarlayabilmeniz gerekir.

Bu yardımcı olur umarım!

+0

Tarih ve saat biçimlerinin ayarlanması doğru şekilde doğrulanmaz. Ben gerçekten bileşik Date and Time dizesini işlemek için özel bir doğrulama yöntemine ihtiyacım olacağını düşünüyorum. –

1

Eklentileri değiştirmenizi öneririm? Zaten date kural için doğrulamaya sahip

// 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

Bu eklentiye bir göz atacağım ve ihtiyacımın uygun olup olmadığını göreceğim. Teşekkürler –

+0

@ Wartickler- kütüphane hala Alfa statüsündedir. İyi görünüyor ama daha olgun bir şey isterim. Teşekkürler –

+0

Bu Javascript! (jQuery stili olsa da) Ne kadar daha fazla olgunlaşmaya ihtiyacınız var! (O; – Kristopher

İlgili konular