【发布时间】:2010-01-05 13:59:14
【问题描述】:
我在 Javascript(使用 Prototype)中要求将光标聚焦在特定 div 中的第一个表单项上。
简单示例:
<form id="theForm">
<div id="part1">
<input id="aaa" .../>
<select id="bbb">...</select>
</div>
<div id="part2">
<select id="ccc">...</select>
<input id="ddd" .../>
</div>
</form>
我想编写一个 Javascript 函数,它采用 theForm 中一个 div 的名称并将光标聚焦在该 div 中的第一项上 - 例如
focusOnFirst('part1'); // will put focus on input "aaa"
focusOnFirst('part2'); // will put focus on select "ccc"
我想我也许可以像这样使用 Prototype 的 select 方法:
$(pDiv).select('input','select',...etc.);
但是,这会返回一个数组,其中包含所有输入,然后是所有选择,等等。它不会按照它们在 div 中出现的顺序返回项目。在我上面的示例中,这导致将焦点放在输入“ddd”而不是选择“ccc”。
另一种可能是Form getElements 方法:
$('theForm').getElements();
但是现在我需要检查每个返回的项目,看看它是否在所需的 div 内。目前我知道的唯一方法是获取它的所有祖先,看看是否有选定的 div。我可以这样做,但我担心这不是最有效的解决方案。
谁能提出更好的方法?
【问题讨论】:
标签: javascript dom prototype