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

我为我的网页表单使用生日日期选择的优秀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日。


在不修改插件的情况下,您可以使用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-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时,控件将按我们的想法工作

链接地址: http://www.djcxy.com/p/4407.html

上一篇: jQuery Birthday Picker dealing with form refresh

下一篇: How do I change the tableView library in Corona SDK for Retina Graphics