jQuery: как найти сначала видимый вход/выбор/текстовую область, исключая кнопки?

Я попробовал

$(":input:not(input[type=button],input[type=submit],button):visible:first")

но это ничего не находит.

Какова моя ошибка?

UPD: Я выполняю это на $ (документ) .load ()

<script type="text/javascript">
$(window).load(function () {
  var aspForm  = $("form#aspnetForm");
  var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
  firstInput.focus();
});
</script>

и в отладке I видят, что firstInput пуст.

UPD2: я нахожусь на странице ASP.NET, работающей под Sharepoint.

Я нашел до сих пор, что для некоторых элементов это действительно находит их (для фиксированных), и для некоторых не делают.:(

81
задан Artem 13 May 2010 в 00:05
поделиться

2 ответа

Почему бы просто не настроить таргетинг на те, которые вам нужны ( демонстрация )?

$('form').find('input[type=text],textarea,select').filter(':visible:first');

Редактировать

Или использовать селектор jQuery : input для фильтрации потомков формы.

$('form').find('*').filter(':input:visible:first');
159
ответ дан 24 November 2019 в 09:33
поделиться

Код JQuery в порядке. Вы должны выполнять в обработчике готовности, а не в событии загрузки окна.

<script type="text/javascript">
$(function(){
  var aspForm  = $("form#aspnetForm");
  var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
  firstInput.focus();
});
</script>

Обновление

Я пробовал на примере Karim79 (спасибо за пример), и он отлично работает: http://jsfiddle.net/2sMfU/

12
ответ дан 24 November 2019 в 09:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: