【问题标题】:Avoid reopen datepicker after date selection in internet explorer避免在 Internet Explorer 中选择日期后重新打开日期选择器
【发布时间】:2014-12-02 06:38:42
【问题描述】:

当我选择一个日期时,日期选择器会重新打开,因为我添加了 $(this).focus();在选择。我该如何解决这个问题? (Example)

$('#datepicker').datepicker({
    onSelect : function(x, u){
     $(this).focus();   
    }
});

我希望重点是必须的。我无法消除那个焦点。请告诉我一些解决方案,但不要取消关注。

【问题讨论】:

  • 它在小提琴中完美运行..有什么问题???
  • 在 chrome 中运行良好。
  • 它只发生在 IE 浏览器中
  • 你应该添加版本@VinothBabu

标签: javascript jquery internet-explorer


【解决方案1】:

请注意,jquery ui datepicker 选择后,模糊和更改事件在焦点返回输入字段之前触发,IE 上的焦点事件总是存在问题。

修复如下

//Example using triggerHandler 
$(function () {
    "use strict";
    $('#datepicker').datepicker({
        onSelect : function(x, u){
            format: "dd/mm/yyyy"
        },
        onClose: function(dateText) {
             $(this).triggerHandler("focus");
             $(this).triggerHandler("blur");
        }
    });
});

这项工作适合我, 参考

//使用triggerHandler的例子 http://jsfiddle.net/shaikhimran786/w6fvuL18/

使用 triggerHandler 解决问题。

triggerHandler() 方法触发被选元素的指定事件。

该方法与 trigger() 方法类似,不同之处在于 trigger() 还会触发事件的默认行为(如表单提交)。

另一个解决方案是

//Example using hide datepicker 
$(function () {
    "use strict";
    $('#datepicker').datepicker({
        onSelect : function(x, u){
            format: "dd/mm/yyyy"
        }
    });
    $('.dp').on('change', function () {
        $('.datepicker').hide();
    });
});

参考下面的链接

//使用隐藏日期选择器的示例 http://jsfiddle.net/shaikhimran786/xj9tkvtd/

希望此修复程序能帮助您解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2019-05-04
    • 2023-03-03
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多