表单验证 - 验证由ng-repeat动态创建的输入

时间:2014-11-13 12:35:51

标签: javascript angularjs validation

我正在尝试使用Angular进行表单验证。我可以按如下方式验证输入元素,

<tr ng-repeat="answer in answers track by $index" ng-form="subQuestionForm">
    <td>
        <div>
            <div ng-class="{ 'has-error' :((subQuestionForm.ansText.$invalid && isSubmitted) || ((subQuestionForm.ansText.$invalid && subQuestionForm.ansText.$dirty))}">
                <input name="ansText" id="ansText" type='text' ng-model="answer.ansText" class="form-control" required />
                <div class="error,help-block col-md-offset-4" ng-show="((subQuestionForm.lhsText.$dirty  || isSubmitted) && ( subQuestionForm.lhsText.$invalid))">
                    <h6 class="help-block" ng-if="subQuestionForm.lhsText.$error.required">Enter  answer</h6>
                </div>
            </div>
        </div>
    </td>
</tr>

这将验证表单,以便用户必须输入所有答案(即输入所有创建的文本框),但我希望用户输入2或更多。如果只输入一个答案,则错误消息将显示,否则表单有效。 我尝试通过为每个索引获取但失败了。 任何人都可以发光。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

<tr ng-repeat="answer in answers track by $index" ng-form="subQuestionForm">
    <td>
       <div>
        <input name="ansText" id="ansText" type='text' ng-model="answer.ansText" class="form-control" ng-required="$index == 0 || $index == 1 " />
            </div>    
    </td>
</tr>