выбор дня рождения jQuery, связанный с обновлением формы
Я использую отличный плагин jquery для выбора даты рождения для моей веб-формы.
демо здесь: http://abecoffman.com/stuff/birthdaypicker/
проблема, с которой я имею дело, заключается в проверке формы. Моя проверка формы перенаправляется на ту же страницу, и я потеряю дату, которая была выбрана.
есть ли способ добавить опцию в javascript даты сборщик: http://abecoffman.com/stuff/birthdaypicker/bday-picker.js
чтобы я мог установить "выбранную по умолчанию дату". Конфигурация может работать примерно так:
$("#picker1").birthdaypicker({
chosenDay: 1;"
chosenMonth: 28;"
chosenYear: 2011;"
});
это установит" выбранную " дату на 28 января 2011 года.
2 ответов
без изменения плагина вы можете использовать JQuery для установки значений. Разметка, которую генерирует плагин, выглядит так:
<fieldset class='birthday-picker'>
<select class='birth-year' name='birth[year]'></select>
<select class='birth-month' name='birth[month]'></select>
<select class='birth-day' name='birth[day]'></select>
</fieldset>
таким образом, ваш JQuery просто должен будет удержать эти элементы и задайте их стоимостью. Вы хотите убедиться, что вы устанавливаете значение, которое существует в списке выбора.
$('select.birth-year').val('my_year'); // 1980
$('select.birth-month').val('my_month'); // 1-12 (not "Jan" which is the text)
$('select.birth-day').val('my_day'); // 1-31 (keep month limitation in mind)
этот код должен быть вызван после вызова плагина, иначе разметка еще не будет сгенерирована.
если сервер возвращает такую дату (код c#):
new DateTime(birthYear, birthMonth, birthDay, 0, 0, 0, DateTimeKind.Utc).ToString(CultureInfo.InvariantCulture);
на jQuery-день рождения-комплектовщик.минута.файл JS вы найдете такой код:
if (s.defaultDate) {
var d = new Date(s.defaultDate);
console.log(d);
u.val(d.getFullYear());
a.val(d.getMonth() + 1);
f.val(d.getDate())
}
просто измените его на:
if (s.defaultDate) {
var d = new Date(s.defaultDate);
console.log(d);
u.val(d.getFullYear());
a.val(d.getMonth() + 1);
f.val(d.getDate())
//Added by LVC
$birthday.val(s.defaultDate);
}
затем, когда вы указываете defaultDate элемент управления будет работать так, как мы хотим