我正在尝试验证使用j-data动态生成的表单,该表单使用ng-repeat呈现给页面。数据是具有相应答案的问题。我遇到的问题是每个组都有动态ng模型,如下所示:
<div class="well question-well" ng-repeat="question in Posttest1Questions">
<p><strong>{{question.question}}</strong></p>
<ul>
<li ng-repeat="answers in question.answers">
<input type="radio" name="Q{{question.id}}" ng-model="question_[question.id]" id="{{question.id}}" value="{{answers.id}}" required data-key="{{answers.isCorrect}}">{{answers.answer}}
</li>
</ul>
</div>
&#13;
即使回答了所有问题,表格也永远无效。反过来,如果我删除ng-model attr,即使没有选择单选按钮,表单也始终有效。
示例Plunkr:http://plnkr.co/edit/DvcJ8byS0yF7iLp37Ets?p=preview
答案 0 :(得分:2)
您可以使用ng-required
为输入的required
状态设置条件。在这种情况下,如果与ng-model
一起使用的模型为null,则需要。否则,不是必需的。
这样,一旦你选择了其中一个答案(模型有一个值),这个问题的所有答案都不会被标记为必需。
<input type="radio" name="Q{{question.id}}" ng-model="question[question.id]" id="{{question.id}}" value="{{answers.id}}" ng-required="question[question.id] == null" data-key="{{answers.isCorrect}}" />
看到它正常工作here。
答案 1 :(得分:1)
下划线
ng-model="question_[question.id]"
对我来说似乎不对。
请尝试ng-model="question[question.id]"
然后您可以简单地说required
更新了您的plnkr:http://plnkr.co/edit/gCZHFqd07880Os8FcxhG?p=preview