【发布时间】:2009-03-13 18:58:05
【问题描述】:
我想将焦点设置在 div 中的第一个表单元素上,可以使用 Prototype 提供的内容,也可以使用普通的 javascript。我有一个包含表单元素的 div 的引用。我不知道第一个表单元素是<input>、<select> 还是<textarea> 节点。
我想做这样的事情:
$('parentDiv').down('textarea, select, input').focus();
然而,Element.down 方法似乎选择了第一个 textarea 节点,即使在 textarea 之前有一个输入节点。
有没有一种优雅的方法来解决这个问题?我想我可以得到父 div 的所有后代,然后遍历每一个寻找这些节点之一,但我怀疑在原型中可能有一种很酷的方法来做到这一点。
我不能使用 Form 对象的方法,因为这个父 div 只是表单的一部分。它是通过 AJAX 调用添加到页面中的,因此当 div 已添加到 DOM 时,我想将焦点设置在新添加的集合中的第一个字段上(很可能不是整个表单中的第一个字段) .
谢谢!
【问题讨论】: