У меня есть требование в 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, которая принимает имя div внутри theForm и фокусирует курсор на первом элементе в этом div - например,
focusOnFirst('part1'); // will put focus on input "aaa"
focusOnFirst('part2'); // will put focus on select "ccc"
Я думал, что смогу использовать метод выбора Prototype, подобный этому:
$(pDiv).select('input','select',...etc.);
Однако, это возвращает массив, который содержит все входные данные, сопровождаемые всеми выборами, и т. Д. Он не возвращает элементы в порядке, в котором они появляются внутри div. В моем примере выше это приводит к фокусированию на вводе «ddd», а не на «ccc».
Другой возможностью является метод getElements формы:
$('theForm').getElements();
Но теперь мне нужно опросить каждый возвращенный предмет, чтобы увидеть, попадает ли он в требуемый элемент div. И в настоящее время я знаю, что единственный способ сделать это - собрать всех своих предков и посмотреть, есть ли выбранный div. Я мог бы это сделать, но боюсь, что это не будет самым эффективным решением.
Кто-нибудь может предложить лучший способ?