如何使用AngularJS检查表中的所有输入是否为ng-valid?

时间:2015-05-17 05:20:23

标签: javascript angularjs html5 validation

我有一个表,每行都有一个输入字段。请参阅下面的代码。

点击保存后,我想迭代所有输入并检查它们是否有效。

<div class="line" data-ng-repeat="data in datas">
    <div class="..." style="width: 30%">
        <form name="dataForm">
            <input name="aliasName"
                   type="text"
                   focus-me
                   ng-model="data.something"
                   ng-pattern="/^[A-Z|a-z]+[\-|A-Z|a-z|0-9]*$/"
                   ng-required="true"
                   ng-maxlength="63"
                   tabindex="1">
            </input>
        </form>
    </div>
    <!-- Next columns -->
</div>

例如,如果其中一个输入字段为空,则为ng-invalid

那么,如何迭代所有输入以检查其中是否有ng-invalid谢谢。

唯一对我有用的是迭代dom并检查ng-invalid的类。垮台是因为它不是NG的方式 - 如果AngularJS决定以不同的方式改变他们的DOM操作,我的黑客就不会工作。

2 个答案:

答案 0 :(得分:2)

每当您使用任何角度类型验证(如ng-required或ng-pattern)包装表单字段并且字段值不符合验证时 - 模型值将保持未定义。 因此,您可以迭代模型列表,并查看未定义的模型值。

希望它有所帮助!

答案 1 :(得分:2)

  

您可以使用禁用ng,因此即使一个字段无效,您的按钮也会被禁用

<button ng-disabled="dataForm.$invalid" >save</button>