如何根据我在数组中的内容切换`disable`属性到我的下拉菜单?

时间:2015-07-22 19:43:22

标签: javascript jquery drop-down-menu

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

@{
    ViewBag.Home = "active";
}

我有数组,我需要根据我的下拉菜单值检查

<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];

如何禁用我的2和4选项?

我只想启用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 个答案:

答案 0 :(得分:2)

您可以在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
}

答案 1 :(得分:1)

我完全重写了我的这个答案,因为我有更好的答案。要更改选项是否已禁用,请为其指定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'

您也可以将此应用于选定的和其他属性。现在,您所要做的就是在函数内部进行操作并调用它。