【发布时间】:2013-08-14 16:06:38
【问题描述】:
我正在尝试让 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>
【问题讨论】:
-
你能发布你的字段模型结构吗?为乱搞创建了一个 plunkr,但我的 ul 被重复并且我输出的 html 结构不同。
-
我支持前面的评论。如果不知道“字段”结构是什么,就无法就此提供建议。
标签: angularjs-scope angularjs-ng-repeat