单选按钮ng-required复选框

时间:2016-12-06 10:59:24

标签: javascript angularjs forms ng-required

我的表单中有一些单选按钮有点问题。我知道复选框可以以一种非常简单的方式完成这项工作,但是,您知道,客户要求这样做。

所以,这是表单部分:

<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上的所有其他答案都没有解决我的问题

1 个答案:

答案 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>