javascript - 仅验证表单中的可见字段

标签 javascript jquery angularjs

我正在验证一种形式。当未输入必填字段时,它将返回 alert。它工作正常。

现在我通过添加 ng-class 隐藏了一些表单字段,当我点击提交时我不想验证隐藏的字段我只想验证那些字段没有隐藏类

这些是我的输入:

    <section  ng-class="{'hidden':true}">
            <input class="required" ng-model="currentData.name" />      
    </section>
    <section ng-class="{'hidden':true}">
            <input  class="required" ng-model="currentData.id"/>    
    </section>
    <section>
        <input class="required" type="text" ng-model='currentData.age'/>    
    </section>

    <section ng-class="{'hidden':true}">
        <input class="required" ng-model='currentData.gender'/> 
    </section>

    <section>
        <input class="required" ng-model='currentData.description'/>    
    </section>


Here am validating my fields :

    $form.find('input.required').each(function() {

                var $this = $(this)
                if ($this.val().trim() == '') {
                    alert("enter required fields")
                }       
            })

I have added `:visible`  its working good.But that wont be a proper solution I guess.Because if there are multiple tabs which is not having `hidden class`means, it will validate only current tab user currently viewing.

    $form.find('input.required:visible').each(function() {

                var $this = $(this)
                if ($this.val().trim() == '') {
                    alert("enter required fields")
                }       
            })

还有什么建议吗?

最佳答案

$('form').find('input.required').parent('*:not(".hidden")').each(function() {
        var $this = $(this)
        if ($this.val().trim() == '') {
            alert("enter required fields")
        }
    })

假设$('form')<form></form> ,

否则应该是这样的 $('#form')对于 <div id="form"></div>

关于javascript - 仅验证表单中的可见字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067299/

相关文章:

javascript - 运行 mockgoose.prepareStorage 时,Mockgoose 下载 234mb

javascript - javascript 数组方法(map、forEach、reduce 等)的迭代顺序是否确定?

javascript - 具有相同脚本的多个幻灯片

javascript - 增加事件监听器事件以监听特定 ID(card-1、card-2、card-3 等...)

在 ng-repeat 中检查 AngularJS 复选框

jquery - Jspanel(cshtml中的假模态窗口)与angularjs

javascript - forEach 方法不起作用

javascript - 未应用 Angular ui 路由器的状态

javascript - Backbone - 什么是更有效的 DOM 元素范围查找方法?

javascript - 为什么我的表达式在页面加载时没有在 Angular 中自动更新?