首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.datepicker()函数在第二次单击时起作用

.datepicker()函数在第二次单击时起作用
EN

Stack Overflow用户
提问于 2017-01-30 18:01:45
回答 2查看 2K关注 0票数 0

我有一个在运行时生成的日期选择器列表,每个都有一个id,但都在同一个类"datepicker“下。

代码语言:javascript
复制
<input class="datepicker" data-id="Adult" id="datepicker-0" Name="DateOfBirth0">
<input class="datepicker" data-id="Child" id="datepicker-1" Name="DateOfBirth1">
<input class="datepicker" data-id="Child" id="datepicker-2" Name="DateOfBirth2">

在javascript中,我想让成年人的年龄在13岁到90岁之间,孩子的年龄在2岁到12岁之间。所以我这样做:

代码语言:javascript
复制
 $(function () {
        $(".datepicker").click(function () {
            var aId = this.id.split('-');
            var refNum = aId[1];
            var dataId = $("#datepicker-" + refNum).attr('data-id');

            var minDate = "";
            var maxDate = "";
            if (dataId == 'Adult') {
                minDate = "-90Y";
                maxDate = "-13Y";
            }
            else if (dataId == 'Child') {
                minDate = "-12Y";
                maxDate = "-2Y";
            }

            $("#datepicker-" + refNum).datepicker({
                changeMonth: true,
                changeYear: true,
                maxDate: maxDate,
                minDate: minDate
            });
        });
    });

所以奇怪的是,当页面加载时,当我第一次点击".datepicker“输入时,什么也没有发生。第二次单击输入时,将出现datepicker日历。

知道为什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-30 18:05:09

它在第二次点击时工作,因为它没有获得焦点。检查下面创建的小提琴手。

代码语言:javascript
复制
https://jsfiddle.net/0xr4jeba/

希望这能有所帮助!

代码语言:javascript
复制
$("#datepicker-" + refNum).datepicker({
                              changeMonth: true,
                              changeYear: true,
                              maxDate: maxDate,
                              minDate: minDate
                          }).focus();   
票数 4
EN

Stack Overflow用户

发布于 2017-01-30 18:04:46

尝试添加

代码语言:javascript
复制
$(document).ready(function() {

    $(".datepicker").click(function () {
                var aId = this.id.split('-');
                var refNum = aId[1];
                var dataId = $("#datepicker-" + refNum).attr('data-id');

                var minDate = "";
                var maxDate = "";
                if (dataId == 'Adult') {
                    minDate = "-90Y";
                    maxDate = "-13Y";
                }
                else if (dataId == 'Child') {
                    minDate = "-12Y";
                    maxDate = "-2Y";
                }

                $("#datepicker-" + refNum).datepicker({
                    changeMonth: true,
                    changeYear: true,
                    maxDate: maxDate,
                    minDate: minDate
                });
            });

    });

这可确保文档已加载,并且事件侦听器在单击之前已连接好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41933131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档