JQuery Mobile - 选择onchange中断标签到下一个字段

时间:2014-11-23 03:50:46

标签: jquery-mobile html-select onchange tab-ordering

使用Jquery mobile时,使用键盘从select中选择一个选项时,无法选择DOM中的下一个输入。如果你取出jquery移动位,事情会按预期工作。

我有以下html:

<body>
<input type='text' id='starter' /><br />
<select id='sel'>
    <option value=''></option>
    <option value='1'>One</option>
    <option value='2'>Two</option>
</select><br />
<input type='text' id='ender' /><br />
</body>

我已经在fiddler上用jquery和jquery mobile设置了这个:

http://jsfiddle.net/58jkj1wa/ - 原始jquery按预期工作。

http://jsfiddle.net/a5reojmo/4/ - jquery mobile broken select。

要重现此问题,请执行以下操作:

  • 光标从第一个输入
  • 开始
  • 按&#39;标签&#39;移动到选择
  • 按向下箭头以激活选项
  • 按向下箭头选择第一个选项
  • 按返回接受更改(非移动设备 - 现在正确选择焦点)
  • 按标签

在非移动版本中,光标现在按预期位于第二个输入中。在移动版本中,它位于其他地方......我不知道在哪里。您有很多选项卡可以将焦点再次移动到第一个输入...然后通过您刚刚使用的选择后所需字段的输入。

就我个人而言,我认为这是一个错误,所以我觉得准备做的最干扰就是尝试使用on change触发器尝试将焦点设置回选择如下:

$("#sel").on("change", function (e) {
    $("#sel").focus();
});

但这不起作用。如果您在其他任何地方进行焦点调用,它将按预期工作,正确突出显示并在不更改值时标记。但是一旦你改变了价值,焦点就在其他地方。

我可以将焦点设置为下一个项目:

$("#sel").on("change", function (e) {
    $("#ender").focus();
});

但我不愿意这样做,因为这意味着我无法动态隐藏我正在做的输入,并且必须以编程方式镜像表单中的流处理。

我已经尝试更新JQM添加的一些包装内容,并且我已经尝试将注意力集中在另一个输入上,然后再次返回,然后选择性地进行选择菜单刷新,但移动设备仍然可以&#39;标签输出到下一个输入。我也试过各种模糊()和焦点()调用都无济于事。

我确实看到this answer通过添加一个keydown处理程序来做类似的事情,但由于我不知道值改变后焦点在哪里我不知道在哪里添加keydown处理程序...除此之外听起来像JQuery Mobile的bug并不是吗?

在JQuery Mobile中进行选择更改后,您是否知道如何正确制作标签和焦点 - 突出显示?

这是我应该报告的错误吗?

0 个答案:

没有答案