我的表单中有一些单选按钮有点问题。我知道复选框可以以一种非常简单的方式完成这项工作,但是,您知道,客户要求这样做。
所以,这是表单部分:
<label>
<span>Acconsento*</span>
<input type="radio" name="privacy_1" value="1" ng-model="ctrl.utente.privacy_1" ng-required="!ctrl.isValidPrivacy()"/>
</label>
<label>
<span>Non acconsento</span>
<input type="radio" name="privacy_1" value="0" ng-model="ctrl.utente.privacy_1"/>
</label>
各自的JS部分:
self.isValidPrivacy = function () {
return (!self.utente.privacy_1 || self.utente.privacy_1 == 0) ? false : true;
};
且ctrl.utente.privacy_1
必须为== 1
。
尝试ng-required="ctrl.utente.privacy_1 != 1"
后
或ng-required="!ctrl.utente.privacy_1
(从第二个无线电输入中移除value="0"
)我仍然没有找到实现此目的的方法。
ctrl.utente.privacy_1 == 0
未显示为验证错误,默认情况下无法选择(ctrl.utente.privacy_1
默认情况下不能false
< / p>
StackOverflow上的所有其他答案都没有解决我的问题
答案 0 :(得分:1)
嗯,我觉得你有一些混乱的概念......
首先,你不需要一个三元运算符来辨别真假,只需返回比较结果:
return (!self.utente.privacy_1 || self.utente.privacy_1 == 0);
就足够了。也就是说,你甚至不需要一个功能来检查这个,你可以直接在属性上做,因为它只是一个简单的检查:
<... ng-required="!$ctrl.utente.privacy_1 || $ctrl.utente.privacy_1 == 0" .../>
那就是说,我不明白为什么你需要一个ng-required,也许你已经误解了它的含义... ng-required它用来迫使用户给输入字段赋值,不是为了检查它的值,而是你正在尝试做的事情。如果您想确保用户选择两个选项中的一个,只需使用html属性&#39; required&#39;在两个输入上,这已经足够了。
<label>
<span>Acconsento*</span>
<input type="radio" name="privacy_1" value="1" ng-model="ctrl.utente.privacy_1" required />
</label>
<label>
<span>Non acconsento</span>
<input type="radio" name="privacy_1" value="0" ng-model="ctrl.utente.privacy_1" required />
</label>