【问题标题】:Is it possible to find out which select option has focus in IE before it is selected?是否可以在选择之前找出哪个选择选项在 IE 中具有焦点?
【发布时间】:2014-12-08 15:02:13
【问题描述】:

我正在尝试启用 jqxGrid 的自定义键盘导航。我已经完成了 99.9% 的工作,但我无法让 IE 在选择框中选择突出显示/聚焦的选项。

我想看看是否有办法检测正在关注的选项,以便在我按下回车键时手动设置选择值。

我试过了:

var optVal = $select.find('option:selected').val();
$select.val(optVal);

它只是获取选择元素的前一个值,并且:

var optVal = $select.find('option:focus').val();
$select.val(optVal);

什么都得不到。


编辑:另外,我不能将事件直接绑定到我的控件。

【问题讨论】:

  • 对于 IE 9/10/11 不确定,但对于 IE 6-8,select 是一个系统控件,它只有更改事件。
  • 我认为您的实际问题尚不清楚。你所说的“被关注的选项”是什么意思?这是否意味着“下拉列表展开时当前突出显示的选项?”
  • 您可以通过点击ENTER 来从原生select 中选择选项,或者只需使用箭头按钮滚动选项。你有一个原生的select 还是你的情况下的自定义选择?
  • 这是一个原生选择,是的,我的意思是使用箭头键时突出显示的选项。我相信 jqxGrid 正在以某种方式控制我的键盘事件。

标签: javascript jquery internet-explorer jqxgrid jqxwidgets


【解决方案1】:

检查keyup事件的target.event怎么样(试试select或者option)?

$("myselect").keyup(function(e) {
    var code = e.which;
    if(code==13) {
        //check the event.target
    }
});

$("myselect option").keyup(function(e) {
    var code = e.which;
    if(code==13) {
        $("myselect").val($(this).val());
    }
});

【讨论】:

  • event.target 返回选择而不是选项。另外,我不能直接将事件绑定到我的控件,因为我必须在 jqxGrid 控件中工作。
猜你喜欢
  • 2013-05-31
  • 2020-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 2021-04-12
  • 1970-01-01
  • 2019-01-14
相关资源
最近更新 更多