我正在使用一个优秀的jquery插件来为我的网页表单选择生日日期。
在这里演示: http://abecoffman.com/stuff/birthdaypicker/
我正在处理的问题是表单验证。我的表单验证重定向回到同一页面,我将丢失所选的日期。
有没有办法在日期选择器的javascript中添加一个选项: http://abecoffman.com/stuff/birthdaypicker/bday-picker.js
这样我就可以设置“默认选定日期”。配置可以适用于:
$("#picker1").birthdaypicker({
chosenDay: 1;"
chosenMonth: 28;"
chosenYear: 2011;"
});
这会将“选定”日期设置为2011年1月28日。
答案 0 :(得分:3)
如果不修改插件,您可以使用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只需要抓住这些元素和set their value。您需要确保设置选择列表中存在的值。
$('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)
在调用插件后必须调用此代码,否则标记将不会生成。
答案 1 :(得分:0)
如果服务器返回这样的日期(c#代码):
new DateTime(birthYear, birthMonth, birthDay, 0, 0, 0, DateTimeKind.Utc).ToString(CultureInfo.InvariantCulture);
在jquery-birthday-picker.min.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时,控件将按照我们想要的方式工作