在跳转到某个输入字段时显示div

时间:2014-12-02 20:48:27

标签: javascript jquery html

我想在用户获取表单上的某个输入时显示日期选择器。如果用户只是选中该字段,则应显示日期选择器。

我试过这样的事情(我顺便使用Zebra_DatePicker):

var datepicker = $('#date-picker-input').data('Zebra_DatePicker')
$('#date-picker-input').focus(function(){
    datepicker.show()
})

可行 - 在字段中显示日期选择器。但是,如果用户决定点击相关的输入字段,这会破坏功能;当发生这种情况时,点击最初打开日期选择器,然后焦点回调函数关闭它。结果是瞬间闪烁,其中显示的是日期选择器然后立即关闭。

如何获得答题器和标签的功能?

2 个答案:

答案 0 :(得分:0)

问题是data('Zebra_DatePicker')返回对日期选择器组件的引用而不是对元素本身的引用,因此对错误的对象执行focus事件绑定。

试试这个:

$('#date-picker-input').on('focus click', function(e) {
    e.stopImmediatePropagation();
    $(this).data('Zebra_DatePicker').show();
})

答案 1 :(得分:0)

该插件不支持您所要求的内容,也不提供许多挂钩,因此解决方法会有点笨拙..

如果您在页面中使用单个日期选择器,请执行

初始化插件

$('#date-picker-input').Zebra_DatePicker({
  // what options you already use
  // and then add
  onSelect: function () {
      var datepicker = $(this).data('Zebra_DatePicker');
      setTimeout(function () {
        datepicker.hide();
      }, 1);
    }
});

然后添加

$('#date-picker-input').off('click').on('focus', function(){
  var datepicker = $(this).data('Zebra_DatePicker');

  datepicker.show();
  return false;
});