Jika Anda menyiapkan datepicker pada suatu input[type="text"]
elemen, Anda mungkin tidak mendapatkan tanggal yang diformat secara konsisten, terutama ketika pengguna tidak mengikuti format tanggal untuk entri data.
Misalnya, ketika Anda mengatur dateFormat sebagai dd-mm-yy
dan tipe pengguna 1-1-1
. Datepicker akan mengonversikan ini menjadi Jan 01, 2001
internal tetapi memanggil val()
objek datepicker akan mengembalikan string "1-1-1"
- persis apa yang ada di bidang teks.
Ini berarti Anda harus memvalidasi input pengguna untuk memastikan tanggal yang dimasukkan dalam format yang Anda harapkan atau tidak memungkinkan pengguna untuk memasukkan tanggal bentuk bebas (bukan memilih pemilih kalender). Meski begitu itu adalah mungkin untuk memaksa kode datepicker untuk memberikan string diformat seperti yang Anda harapkan:
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"
Perlu diketahui bahwa meskipun metode datepicker getDate()
akan mengembalikan tanggal, itu hanya dapat melakukan banyak hal dengan input pengguna yang tidak sama persis dengan format tanggal. Ini berarti jika tidak ada validasi, dimungkinkan untuk mendapatkan tanggal kembali yang berbeda dari yang diharapkan pengguna. Kaisar peringatan .