我如何切换'禁用'属性到我的下拉菜单的基础上,我有我的数组

How do I toggle the `disable` attribute to my dropdown-menu base on what I have in my array?

本文关键字:我的 数组 基础上 属性 何切换 禁用 下拉菜单      更新时间:2023-09-26

我有一个5个选项的下拉菜单。

<select id="dd">
 <option value="1"> 1 <option>
 <option value="2"> 2 <option>
 <option value="3"> 3 <option>
 <option value="4"> 4 <option>
 <option value="5"> 5 <option>
</select>

我有一个数组我需要根据下拉菜单值

检查它

var enable = [1,3,5];

我想生产这个

<select id="dd">
  <option value="1"> 1 <option>
  <option value="2" disabled="disabled"> 2 <option>
  <option value="3"> 3 <option>
  <option value="4" disabled="disabled"> 4 <option>
  <option value="5" > 5 <option>
</select>

如何禁用2和4选项?

我只想启用1,3和5。

我被卡在这里了。

$("#dd > option").each(function() {
    if(  inArray(this.val(),studentsArray ) !== -1 ){
        //prop the disabled attribute
    }
});

有人能帮我推一下吗?

你可以在HTML中这样做:

<select id="dd">
  <option value="1"> 1 <option>
  <option value="2" disabled="disabled"> 2 <option>
  <option value="3"> 3 <option>
  <option value="4" disabled="disabled"> 4 <option>
  <option value="5" disabled="disabled"> 5 <option>
</select>

注意disabled="disabled"是XHTML样式。像其他人发布的那样,普通的旧残疾本身也会工作得很好。

如果您禁用的选项总是相同的,这将工作。但是如果你想用jQuery禁用数组之外的所有选项,你可以这样做:

var array = [1, 3];
$('#dd option').prop('disabled', true); // Disables all
for (var i in array) { // Iterates over array
    $('#dd option[value="' + array[i] + '"]').prop('disabled', false); // Enable this one option
}

我完全重写了我的答案,因为我有一个更好的答案。要更改一个选项是否被禁用,给它一个Id,或者如果有几个选项要禁用,给它们都一个相同的类。对于一个Id(只禁用一个元素),这样做:

variableName=document.getElementById('id');
//where 'id' in the line above is the id of the option to be disabled
variableName.setAttribute('disabled, 'disabled');

或者对于一个类,它与

非常相似
optionstobechanged=document.getElementsByClassName('class');
//where 'class' in the line above is the name of the class given to the items to be disabled
for(i=0; i<optionstobechanged.length; i++){
    optionstobechanged[i].setAttribute('disabled', 'disabled');
}

注意,这可以循环用于类似的事情。

setAttribute();

函数接受两个字符串:要更改的属性/属性(即;已选,已禁用)及其值。所以

.setAttribute('disabled', 'disabled');

输出为

disabled='disabled'

还可以将此应用于selected属性和其他属性。现在,您所要做的就是把它放在一个函数中并调用它。