Якщо ви встановите панель вибору дати на input[type="text"]
елемент, можливо, ви не отримаєте послідовно відформатовану дату, особливо коли користувач не дотримується формату дати для введення даних.
Наприклад, коли ви встановлюєте dateFormat як dd-mm-yy
і типи користувачів 1-1-1
. Вибір дат перетворить це у Jan 01, 2001
внутрішнє, але виклик val()
об'єкта datepicker поверне рядок "1-1-1"
- саме те, що є в текстовому полі.
Це означає, що вам слід або перевірити вхід користувача, щоб переконатися, що дата введена у форматі, який ви очікуєте, або не дозволяти користувачеві вводити вільну форму дат (віддаючи перевагу замість вибору календаря). Незважаючи на це , можна змусити код вибору дат надати вам рядки, відформатовані так, як ви очікували:
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"
Однак майте на увазі, що, хоча getDate()
метод datepicker поверне дату, він може зробити стільки, коли користувальницькі дані не точно відповідають формату дати. Це означає, що за відсутності перевірки можливо повернути дату, яка відрізняється від того, що очікує користувач. Caveat emptor .