-1

我的表单中的一些单选按钮有点问题。我知道复选框可以以非常简单的方式做到这一点,但你知道,客户要求这样做。

所以,这是表单部分:

<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_1value="0"从第二个无线电输入中删除)之后,我仍然没有找到实现此目的的方法。

ctrl.utente.privacy_1 == 0不显示为验证错误,默认不能选中(ctrl.utente.privacy_1不能默认选中false

StackOverflow 上的所有其他答案都不能解决我的问题

4

1 回答 1

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 属性“必需”,这就足够了。

<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>
于 2016-12-06T12:05:52.133 回答