0

我有一个select值为 2 个字符代码的国家/地区。

<select>
    <option value=""> </option>
    <option value="AF">Afghanistan</option>
    <option value="AX">Åland Islands</option>
    ...
    <option value="ZW">Zimbabwe</option>
</select>

我想禁用所有不在正在生成的数组中的选项。

var allowedCountries = ["AF", "AX", "AL", "DZ", "AS", "AD", "AO"];

有没有办法做到这一点,.filter()或者我必须遍历选项?

4

2 回答 2

2
$("option").filter(function() {
    return allowed_countries.indexOf(this.value) == -1;
}).prop('disabled', true);

您可能应该""输入,allowedCountries以便他们可以取消选择菜单。要么,要么在过滤后重新启用它。

于 2013-07-24T18:50:18.660 回答
1

您可以尝试使用inArraywith filter

$("option").filter(function (i) {
    return $.inArray(this.value, allowedCountries) == -1
}).prop("disabled", true);

演示:http: //jsfiddle.net/hungerpain/cJVxC/1/

于 2013-07-24T18:51:37.800 回答