jquery javascript验证是否可见

时间:2013-02-25 16:22:11

标签: jquery validation

validate:function(section){
        var elements=this.sections.$sections.eq(section).data('elements') //reference elements within this section that should be validated
        var validated=true, invalidtext=["Fill the following areas:\n"]
        function invalidate(el){
            validated=false
            invalidtext.push("- "+ (el.id || el.name))
        }
        for (var i=0; i<elements.length; i++){
            if (/(text)/.test(elements[i].type) && elements[i].value==""){ //text and textarea elements
                invalidate(elements[i])
            }
            else if (/(select)/.test(elements[i].type) && (elements[i].selectedIndex==-1 || elements[i].options[elements[i].selectedIndex].text=="")){ //select elements
                invalidate(elements[i])
            }
            else if (elements[i].type==undefined && elements[i].length>0){ //radio and checkbox elements
                var onechecked=false
                for (var r=0; r<elements[i].length; r++){
                    if (elements[i][r].checked==true){
                        onechecked=true
                        break
                    }
                }
                if (!onechecked){
                    invalidate(elements[i][0])
                }
            }
        }
        if (!validated)
            alert(invalidtext.join('\n'))
        return validated
    },

我想在此函数中添加一个控件,用于检查字段是否可见。我尝试将其添加到行中但是没有用;

elements[i].style.display=="none"

我隐藏的表没有输入,这可能是理由吗?是否有其他方法可以添加此控件?

修改 解:     元素[I] .style.display!== “无”

1 个答案:

答案 0 :(得分:0)

elements似乎是一个DOM元素数组,而不是jquery对象。必须在jquery对象上调用is

$(elements[i]).is(":visible")

另请注意,这会返回一个布尔值,无需检查它是否为== true