假设我有两个问题,每个问题都有各自的复选框和“Next->”按钮。我想启用“下一步”按钮,每个问题至少有一个选中复选框。我把一切都包裹在表格中。像这样的东西
<form name="form_" novalidate>
<div="cont_1" >
<label>
<input type="checkbox" ng-model="data1.enabled" ng-required="!data1.enabled">
</label>
.
.
</div>
<div="cont_2" >
<label>
<input type="checkbox" ng-model="data5.enabled" ng-required="!data5.enabled">
</label>
.
.
</div>
<button ng-disabled="form_.$invalid">
</form>
问题是我必须选择按钮的所有复选框才能启用,我不想要,我想要的是每个问题中至少有一个要检查按钮启用,它可以是1&amp; 1,2和&amp;等等......但并非强有力的全部。我之前使用了ng-required和radiobutton,它确实有效。虽然复选框不一样。似乎$ invalid无法检查所有人是否遵守,但这不是我想要的。
提前致谢!!!
答案 0 :(得分:1)
您不应该使用ng-required作为复选框,因为复选框required
表示必须选择它才有效。因此,如果您在表单required
中有一些复选框,则必须检查该表单是否有效。
对于单选按钮,它的工作方式不同。单选按钮上的required
强制选择至少一个值。
检查
http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_checkbox_required
您应该为每个问题维护一个标志,可以在选择该问题的答案时设置,并在设置了所有问题的这些标志时启用该按钮。
ng-required
不是解决问题的方法。
答案 1 :(得分:1)
我同意尼尔斯的意见 - 你希望从ng-required
中得到一些它不应该做的事情。
您需要:
对于方法(1),我创建了一个plunker:http://plnkr.co/edit/pON3PmS77oqqe0aj4Fsb