AngularJS形成带有单选按钮和ng-repeat的vaidate

时间:2016-01-17 15:08:47

标签: angularjs json radio-button ng-repeat angular-ngmodel

我正在尝试验证使用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;
&#13;
&#13;

即使回答了所有问题,表格也永远无效。反过来,如果我删除ng-model attr,即使没有选择单选按钮,表单也始终有效。

示例Plunkr:http://plnkr.co/edit/DvcJ8byS0yF7iLp37Ets?p=preview

2 个答案:

答案 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