как установить фокус на первый редактируемый элемент ввода в форме

Динамически созданная форма содержит элементы ввода. Первые элементы могут быть отключены или доступны только для чтения. Я устал от кода ниже, чтобы установить фокус на первый элемент, который принимает данные для включения быстрого ввода данных с клавиатуры формы. Однако, если элемент кулака формы отключен или доступен только для чтения, фокус не установлен. Как установить фокус на первый элемент, который принимает данные?

    <form style='margin: 30px' id="Form" class='form-fields' method='post' target='_blank'
    action='Report/Render'>
...
    <input id='_submit' type='submit' value='Show report' class='button blue bigrounded' />
    </form>
    <script type="text/javascript">
        $(function () {
            var elements = $('#Form').find(':text,:radio,:checkbox,select,textarea');
            elements[0].focus();
            elements[0].select();
});
</script>

Обновление

Есть также скрытые поля ввода, извините. Предоставленные ответы устанавливают фокус на скрытый элемент. Ответ, содержащий функцию, не находит никаких элементов.

Вот тестовый пример обновления:

$(function () {
  $("#form :input:not([readonly='readonly']):not([disabled='disabled'])").first() 
                                                                        .focus(); 
});

Как установить фокус на видимый, активный и не только для чтения элемент?

Обновление 3

Я пробовал код строки W, где добавлен элемент ввода. Теперь он устанавливает фокус на второй элемент. Тестовый пример показан в версии 5 ответа Роба В.

13
задан Community 23 May 2017 в 11:45
поделиться