Автоматически установить выбранную дату в altField при загрузке - PullRequest
5 голосов
/ 09 января 2012

Я хочу установить значения поля datepicker и altField при загрузке страницы, и мне было интересно, есть ли опция в datepicker, чтобы сделать это автоматически (т.е. без необходимости вызывать setDate).

Я знаю, что если я сделаю что-то вроде этого:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:+7});

Если date-div равно div, то дата по умолчанию автоматически добавляется в поле date-input, когда страницазагружен.Но если я использую текстовое поле вместо div, оно не устанавливает значения автоматически (мне нужно вызвать setDate в отдельной строке).

Мне просто интересно, яЯ уже реализовал это, вызывая setDate, но я хотел бы знать, есть ли что-то, чтобы сделать это автоматически, и если нет, то почему?(поскольку он работает при использовании div для отображения календаря).

Ответы [ 2 ]

0 голосов
/ 03 сентября 2014

Лучше всего установить defaultDate, чтобы проанализировать значение altField с такой библиотекой, как Moment.js , потому что реализации браузера для разбора дат ненадежны.Например, если ваше altField является полем перед полем DatePicker, и оно в формате ISO 8601, вы можете сделать это:

$(this).datepicker({
    altField: $(this).prev(),
    altFormat: $.datepicker.ISO_8601,
    defaultDate: moment($(this).prev().val()).toDate()
});

Это будет устанавливать только выбранную по умолчанию дату при открытии календаря.Если вы также хотите заполнить поле DatePicker, вы можете сделать это после инициализации DatePicker с кодом выше:

$(this).datepicker("setDate", moment($(this).prev().val()).toDate());
0 голосов
/ 12 декабря 2012

Не на 100% элегантно, так как нужно повторение, но у меня работает:

$("#date-div").datepicker({altField:"#date-input",altFormat:"yy-mm-dd", defaultDate:$("#date-input").val()});
...