AngularJS:表单验证不能处理隐藏的输入

时间:2015-07-09 19:22:05

标签: javascript angularjs forms validation

我有一个分为4个步骤的表单(我使用ng-switch创建了一个表单“向导”),提交按钮位于向导的最后一页。我有一些麻烦使角度形式验证工作。似乎formName。$ invalid只监视表单当前步骤的输入。

    <form name="carouselForm">
        <div ng-switch="modal.getCurrentStep()" class="slide-frame">
            <div ng-switch-when="general" class="wave row">

                ....

            </div>
            <div ng-switch-when="carousel" class="wave row">
                <div class="col-md-12">
                    <div class="form-group"
                        ng-class="">
                        <label for="Title">
                            Title <span class="red">*</span>
                        </label>
                        <div>
                            <input id="Title"
                            ng-model="entityData.Title"
                            type="text"
                            required
                            placeholder="" class="form-control input-md">
                        </div>
                    </div>
                </div>
            </div>
            <div ng-switch-when="details" class="wave row">

                .....

            </div>
            <div ng-switch-when="description" class="wave row">

                .....

            </div>
        </div>
    </form>

我删除了大部分表单,因为它会很长。在第二步中,我留下了一个带有所需标签的输入。在此步骤中,如果未设置此字段,则carouselForm。$ invalid正确设置为true,但是一旦我更改为下一步,即使我没有填写所需的输入,carouselForm。$ invalid也会再次为false。 / p>

似乎角度形式验证不会在我的其他ng-switch块中观察输入。有没有办法将它们纳入验证?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以通过ng-show替换ng-switch-when,这样就不会从DOM中删除,但会使用CSS隐藏。