【发布时间】:2014-04-06 13:11:04
【问题描述】:
我创建了这个简单的例子:http://jsfiddle.net/5Bh59/。
如果您在 AngularJS 1.2.1 和 1.1.1 之间切换,您会看到单选按钮在任一版本中都无法正常工作。如果你看单选按钮的$dirty 字段,1) 对于版本 1.1.1,它只会在点击第一个按钮时设置,2) 对于版本 1.2.1,它只会在最后一个按钮被点击时设置点击。
我读了这个答案:AngularJS Radio group not setting $dirty on field 但我不太明白答案。不仅如此,fiddler 示例也演示了相同的行为。
那么,这是 AngularJS 中的一个错误吗?我该如何解决?
【问题讨论】:
-
那行得通。我很惊讶
$valid变成true对于两个控件,即使只选择了一个。 -
我猜那是因为他们使用相同的 ng-model,所以所有的输入都可以判断组中是否有一个被选中。
-
问题是每个人现在也有自己的
$dirty。我只喜欢在控件标记为$dirty时显示验证。 -
您可以在所有单选按钮周围包裹一个 ng-form 并将其命名为“radioGroup”,然后只要单击任何单选按钮,它就会被标记为 $dirty。我将添加另一个小提琴。
标签: angularjs validation radio-button