【问题标题】:Unfocus on click on datepicker (3rd click should open it also)不关注点击日期选择器(第三次点击也应该打开它)
【发布时间】:2021-06-29 06:02:01
【问题描述】:

我有一个非常直接的日期选择器配置,但是第三次​​点击这个日期选择器并没有打开它,除非你通过点击其他地方来取消日期选择器的焦点。 所以,目前正在发生这种情况:

  • 首先点击日期选择器:打开日期选择器
  • 第二次点击日期选择器:关闭日期选择器
  • 第三次点击日期选择器:什么都不做(但应该再次打开日期选择器)。

我尝试使用 onClose 并使用 element.blur() 清除焦点,但这仅在我不直接单击输入字段时触发(这正是我想要修复的情况)。

$( "#cmpz_start" ).datepicker({ dateFormat: 'dd.mm.yy', minDate: 0, autoclose: true, 
    beforeShowDay: 
        function(date) {
            // get disabled dates and check them
            var disabled = check_date(date, cmpz_disabled_dates);
            return disabled;
        }, 
    onClose: 
        function()  {
            this.blur();
        }
});

您可以在此页面上看到上述日期选择器:www.vanberry.de 但我禁用了 blur() 因为它不起作用。

感谢任何帮助!

【问题讨论】:

    标签: javascript datepicker


    【解决方案1】:

    您应该将this 记录在您的onClose() 回调函数中。 我认为它不是一个 jQuery 对象,所以它不知道 blur() 函数。 你应该把它改成$(this).blur();

    您还可以向回调函数添加一个参数,在此参数中目标应该存在。假设你调用你的参数e,你可以写$(e.target).blur();

    【讨论】:

    • "this" 也可以独立使用,感谢您的评论!我以为我的代码行不通,但实际上它“太好了”。使用上面的代码,每次单击都会模糊元素并立即打开日期选择器。所以,我应该做一个点击计数器,只对不均匀的点击次数进行模糊处理。还是我想的太复杂了
    猜你喜欢
    • 2014-10-26
    • 2013-08-22
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多