我正在尝试使用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,它将神奇地开始工作。
代码工作正常,聚焦元素,没有超时。例