Проверьте страницу на наличие видимых форм ввода - PullRequest
1 голос
/ 06 апреля 2011

Как проверить, есть ли в DOM какие-либо видимые формы ввода, например, поле ввода, поле выбора, поле мультитекста и т. д., по крайней мере, один из них, мне нужно будет запустить определенный код. Если все скрыто, отображается не меньше 1, я не буду показывать код запуска.

if(ThereIsVisibleInputFields) {
    IWillRunThisCode();   
}

EDIT:

Как насчет этого?

if($(":input:visible").length) {
    IWillRunThisCode();
}

Выбирает ли :input селектор все элементы формы?

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Скорее всего, вам нужен селектор: visible.Вы можете использовать его как таковой -

if ($('input:visible, textarea:visible, select:visible').length > 0) {
    IWillRunThisCode();
}

Для получения дополнительной информации вы можете проверить страницу API jQuery - : видимый селектор

Редактировать: Как указано в OP,Селектор ввода работает одинаково хорошо.Более того, он также выбирает кнопки, чего не было в моем исходном коде.Таким образом, селектор должен быть действительно

if ($(':input:visible').length) {
    IWillRunThisCode();
}
0 голосов
/ 06 апреля 2011
function ThereIsVisibleInputFields(){
   var arr = new Array();
   arr = document.getElementsByTagName( "input" );
   for(var i=0; i < arr.length; i++)
            {
                var tagName = document.getElementsByTagName( "*" ).item(i).nodeName;
                var tagObj = document.getElementsByTagName( "*" ).item(i);
                if(tagObj.style.visibility=="visible"||tagObj.style.display!="none")             
                     return true;
            }
   return false;
}

Точно так же мы можем проверить и другие теги (выберите, textarea и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...