Вот мое решение.Код должен быть достаточно простым, чтобы следовать, но вот идея:
- получить все входы, выделения и текстовые области
- отфильтровать все кнопки и скрытые поля
- фильтр только для включенных видимых полей
- выберите первое
- сфокусируйте выделенное поле
Код:
function focusFirst(parent) {
$(parent).find('input, textarea, select')
.not('input[type=hidden],input[type=button],input[type=submit],input[type=reset],input[type=image],button')
.filter(':enabled:visible:first')
.focus();
}
Затем простовызовите focusFirst со своим родительским элементом или селектором.
Селектор:
focusFirst('#parentId');
Элемент:
var el = $('#parentId');
focusFirst(el);