Я пытаюсь расширить jQuery UI Datepicker для добавления некоторых валидаций.
Я много искал в Интернете, но я не мог получить никакой помощи. Я нашел SO question jquery-datepicker-function-override, нет способа изменить поведение textinput, компонент datepicker поддерживает только событие onSelect, которое запускается после того, как дата выбрана не тогда, когда мы меняем дату с помощью textinput.
Я создал скрипт, чтобы показать проблему.
У меня есть два сборщика дат, оба показывают неправильные даты. В этом случае сборщик даты показывает текущую дату системы. Первая текстовая запись содержит 05-ddd-2014, а вторая - 05 марта 2014 года, обе являются неправильными датами.
ПРИМЕЧАНИЕ.
Я знаю, как использовать компонент datepicker, я хочу поддержать проверку при нажатии/вводе клавиатуры. Мне нужно расширить компонент jQuery UI Datepicker. Вопрос не в формате даты. Чтобы упростить вопрос, я выбираю простой формат (dd-M-yy (i.e 02-Feb-2014)). Вопрос заключается в обработке события изменения ввода текста в случае неправильных дат.
В настоящее время я поддерживаю только один формат ввода dd-M-yy (т.е. 02 февраля 2014 года).
Когда я вхожу в любой неправильный формат непосредственно в текстовом вводе (то есть 02-xxx-2014), в списке выбора даты отображается текущая дата системы ( текущее поведение).
Есть ли способ, я могу проверить текст, введенный в текстовый ввод, и назначить его datepicker.
Я попытался использовать событие keydown для textinput, но иногда он не давал правильную клавишу, может быть jQuery UI Datepicker обрабатывает это событие.
$('#datepicker').on("keydown", function(e) {
var val = this.value;
var ar = val.split("-");
// dd - parse the date, do the required validation
console.log( ar[0], isNaN(ar[0]) );
});
Есть ли какая-либо лучшая практика для расширения jQuery UI Datepicker или jQuery UI conmponents вообще.