Bir tarih seçici seçerseniz input[type="text"]
öğeye tarih ayarlarsanız, özellikle kullanıcı veri girişi için tarih biçimini takip etmediğinde tutarlı biçimde biçimlendirilmiş bir tarih alamayabilirsiniz.
Örneğin, dateFormat öğesini dd-mm-yy
ve kullanıcı türlerini ayarladığınızda 1-1-1
. Datepicker bunu Jan 01, 2001
dahili olarak dönüştürür, ancak val()
datepicker nesnesini çağırmak "1-1-1"
tam olarak metin alanında olan dizeyi döndürür .
Bu, girilen tarihin beklediğiniz biçimde olduğundan emin olmak için kullanıcı girişini doğrulamanız gerektiği veya kullanıcının tarihler serbest biçimli girmesine izin vermeyeceğinizi (bunun yerine takvim seçiciyi tercih ettiğiniz) anlamına gelir. Yine de , tarih seçici kodunu beklediğiniz gibi biçimlendirilmiş bir dize vermeye zorlamak mümkündür:
var picker = $('#datepicker');
picker.datepicker({ dateFormat: 'dd-mm-yy' });
picker.val( '1-1-1' ); // simulate user input
alert( picker.val() ); // "1-1-1"
var d = picker.datepicker( 'getDate' );
var f = picker.datepicker( 'option', 'dateFormat' );
var v = $.datepicker.formatDate( f, d );
alert( v ); // "01-01-2001"
Ancak, datepicker getDate()
yönteminin bir tarih döndürmesine rağmen, yalnızca tarih biçimiyle tam olarak eşleşmeyen kullanıcı girişiyle çok şey yapabileceğini unutmayın. Bu, doğrulama yapılmadığında kullanıcının beklediğinden farklı bir tarih almanın mümkün olduğu anlamına gelir. Uyarı emptor .