1

我有一个带有 a<select>和a 的简单表格<input text>;如果选项的值为真,我需要禁用输入文本。这是我的代码:

<div class="form-group">
    <label for="auth">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.LABEL' | translate }}</label>
    <select name="auth" class="form-control"  ng-model="wifi.securitytype">
        <option value="true">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.NONE' | translate }}</option>
        <option value="false">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.WEP' | translate }}</option>
        <option value="false">{{ 'SETTINGS.SYSTEM.NET.WIFI.AUTH.WPA2' | translate }}</option>
    </select>
</div>


<fieldset ng-disabled="wifi.securitytype">
    <div class="form-group" ng-class="{'has-error':wifiForm.password.$invalid && !wifi.securitytype}">
        <label for="password">{{ 'SETTINGS.SYSTEM.NET.WIFI.PASSWORD' | translate }}</label>
        <input class="form-control" name="password" placeholder="{{ 'SETTINGS.SYSTEM.NET.WIFI.PASSWORD_PLACEHOLDER' | translate }}" ng-model="wifi.wpakey" ng-pattern='/^(?!\s*$).+/' ng-model-options="{ updateOn: 'blur' }">
        <span class="help-block ng-hide" ng-show="wifiForm.password.$invalid && !wifi.securitytype">RICHIESTA PASSWORD DI RETE</span>
    </div>
</fieldset>

问题是它<fieldset>曾经被禁用。我的错在哪里?

4

2 回答 2

2

我认为您希望选项值是布尔类型。但是 HTML 属性始终是字符串,因此您应该在这两种情况下评估它们,“真”或“假”,如此处所指出

尝试将ng-disabled条件替换为

<fieldset ng-disabled="'true' === wifi.securitytype">
于 2016-10-18T11:36:09.803 回答
0

wifi.securitytype根据 javascript将返回'true'or非空字符串和真值,因此您总是评估为. 您可以按照@Eirini 的建议进行操作。'false'ng-disabledtrue

于 2016-10-18T11:40:19.187 回答