我试图让 AngularJS 重复设置相同类型的输入单选字段。
例子:
<form>
<ul id="group1">
<li><input type='radio' name='optionRadio'></li>
<li><input type='radio' name='optionRadio'></li>
</ul>
<ul id="group2">
<li><input type='radio' name='optionRadio'></li>
<li><input type='radio' name='optionRadio'></li>
</ul>
</form>
AngularJS 我有:
<form name='testForm'>
<ul ng-repeat='field in fields' ng-form='subForm'>
<li><input type='radio' ng-model='subForm.optionRadio' name='optionRadio'>field.name</li>
</ul>
</form>
问题是当我单击单选按钮时,它将取消选择另一组中的单选。
我知道问题是 name = optionRadio,但我正在尝试利用表单 testForm 中的 $invalid。
如果我删除 name='optionRadio',我会丢失需要突出显示哪个表单项的错误。
我也尝试过单独的表单标签,但我在使用 ng-repeat 和表单标签时遇到了麻烦。
我还尝试将$index附加到name,但表单对象从字面上接受值。
任何有关如何正确执行此操作的建议将不胜感激。
编辑:http: //jsfiddle.net/HB7LU/207/
我做了一个jsfiddle。我找到了一个可行的解决方案,但不会使用表单验证。
通过检查模型是否有值,我可以获得相同的错误消息结果。另一种选择是编写自定义指令进行验证,然后检查子表单以查找我要查找的特定错误。
例子:
<input radioCheck type='radio' name='optionRadio'/>
<span ng-show='subForm.$error.radioCheck'>Radio check error</span>