如何检查DOM是否有任何可见的输入表单,例如输入字段,选择字段,多字段字段等至少有一个,我需要运行一定的代码。如果所有都被隐藏,则至少显示1,我将不显示运行代码。
if(ThereIsVisibleInputFields) {
IWillRunThisCode();
}
如何使用它。
if($(":input:visible").length) {
IWillRunThisCode();
}
:input
选择器是否会选择所有表单元素?
答案 0 :(得分:2)
:可见选择器是您最需要的选择。你可以这样使用它 -
if ($('input:visible, textarea:visible, select:visible').length > 0) {
IWillRunThisCode();
}
您可以查看jQuery api页面以获取更多信息 - :visible Selector
编辑: 正如OP所指出的那样:输入选择器同样有效。更好的是,它还选择了按钮,我的原始代码没有。所以选择器应该是
if ($(':input:visible').length) {
IWillRunThisCode();
}
答案 1 :(得分:0)
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;
}
同样我们也可以检查其他标签(select,textarea等)