JavaScript IE 焦点集超时不起作用复选框



我正在尝试使用setTimeout解决方法修复已知的"JavaScript focus()在IE中不起作用"问题。 但是,当从复选框的 onchange 事件处理程序调用的函数中调用它时,它不起作用。

换句话说:

<input type="checkbox" id="TheCheckbox"
       onchange="theCheckboxChanged()" />Check Here
function theCheckboxChanged()
{
    setTimeout(function () { document.getElementById("anotherElement").focus(); }
               , 100);
}

是的,"otherElement"在调用时存在 - 事实上,它的工作原理是用 Firefox 编写的。

如果复选框的格式为:

<input type="checkbox" id="TheCheckbox"
       onchange="theCheckboxChanged()">Check Here</input>

输入元素是一个空标签,它不包含内容。这就是为什么

<input type="checkbox" id="TheCheckbox" onchange="theCheckboxChanged()">Check Here</input>

不起作用。

您应该使用标签

<input type="checkbox" id="TheCheckbox" onchange="theCheckboxChanged()"/><label for="TheCheckbox">Check Here</label>

怪癖模式的问题是点击事件不会触发更改。将其更改为onclick,它将神奇地开始工作。

代码工作正常,聚焦元素,没有超时。例

最新更新