避免在Internet Explorer中选择日期后重新打开日期选择器

时间:2014-12-02 06:38:43

标签: javascript jquery internet-explorer

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

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

我希望重点关注。我不能删除那个焦点。请不要删除那个焦点,请告诉我一些解决方法。

1 个答案:

答案 0 :(得分:-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();
    });
});

请参阅以下链接

  

//使用hide datepicker的示例   http://jsfiddle.net/shaikhimran786/xj9tkvtd/

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