gpt4 book ai didi

javascript - 使用 javascript 将焦点放在选择内?

转载 作者:行者123 更新时间:2023-11-30 05:59:11 25 4
gpt4 key购买 nike

以下代码在大多数浏览器中都可以正常工作,但在 Internet Explorer CE Mobil 中无法正常工作,我终究无法弄清楚原因。

function autofocus() {
var el = document.getElementById("autofocus");
if (el === null) {
return;
} else if (el.tagName.toUpperCase() == "SELECT") {
if (el.selectedIndex == -1) {
el.options[0].selected = true;

}
}
el.focus();
}

$(window).ready(function () {
autofocus();
});​

它在我尝试过的所有常规浏览器中都能完美运行,但在 Internet Explorer Mobile 中,它似乎专注于选择列表本身,这意味着不单击一个选项就无法导航各种选项。也许如果我点击其中一个选项呢?参见 http://jsfiddle.net/mhenrixon/sbwCv/19/例如什么不起作用。

编辑: 它与 selectedIndex 本身无关,因为大多数时候会有 selectedIndex,如 15、5、27 或其他。只是不是-1。

最佳答案

在我的 Samsung Saga 上,我正在运行:

Mozilla/4.0(兼容;MSIE 6.0;Windows CE;IEMobile 7.11)VZW:SCH-i770 PPC 320x320

这个浏览器的问题是 jQuery ready功能。

如果您改为使用 <body onload="autofocus()"> <select>将选择其第一个选项。这个选项确实是有重点的;如果我使用光电鼠标,我可以用右箭头指向不同的选项,然后按空格键来选择它。

所以这是我最终得到的测试用例:

<html>
<head>
<title>Test</title>
<!-- script type="text/javascript" src="jquery-1.4.2.js" -->
<script type="text/javascript">
function autofocus() {
var el = document.getElementById("autofocus");
if (el === null) {
return;
} else if (el.tagName.toUpperCase() == "SELECT") {
if (el.selectedIndex == -1) {
el.options[0].selected = true;
}
}
el.focus();
}

/*
$(window).ready(function () {
autofocus();
});
*/
</script>
</head>
<body onload="autofocus()">
<select autofocus="autofocus" id="autofocus" multiple="multiple">
<option value="0">0:17,00st</option>
<option value="P11">P11:1918,00st</option>
<option value="P12">P12:100,00st</option>
</select>
</body>
</html>

当然,它也适用于桌面浏览器。

关于javascript - 使用 javascript 将焦点放在选择内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9805960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com