jQuery生日选择器处理表单刷新

我正在使用一个优秀的jquery插件来为我的网页表单选择生日日期。

在这里演示: http : //abecoffman.com/stuff/birthdaypicker/

我正在处理的问题是表单validation。 我的表单validation重定向回到同一页面,我将丢失所选的日期。

有没有办法在日期选择器的javascript中添加一个选项: http : //abecoffman.com/stuff/birthdaypicker/bday-picker.js

这样我就可以设置“默认选择日期”。 配置可以工作如下:

$("#picker1").birthdaypicker({ chosenDay: 1;" chosenMonth: 28;" chosenYear: 2011;" }); 

这将把“选定”日期设置为2011年1月28日。

在不修改插件的情况下,您可以使用JQuery来设置值。 插件生成的标记如下所示:

 

所以你的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-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时,控件将按我们的意愿工作