JS - 禁用选择元素

时间:2017-02-13 05:11:50

标签: javascript

我有一个与JS有关的问题。我对此很陌生!

我的[combo-box]有n个元素。

我还有一个名为“getValues()”的函数,它返回列表框元素,如:

array (size=5)
'value' => string '...' (length=25)
'level' => int 1

现在,用户可以看到带有元素(值)的组合框。一切都很完美,但我想制作JS功能,这样做会有以下几点:

当用户点击组合框中的一个元素(选择)时,列表框中的其他元素(“级别”较低(<))会自动禁用(无法点击)。

我尝试了类似的东西,但停了下来,因为我主要专注于php而且我现在只是学习JS:

<script type="text/javascript">
function JS(){
if(document.getElementById('types').value) 
{
var id = document.getElementById('types');
for (var i = 0; i < id.length; i++) {
if( allelements.level < selected.level) 
? op[i].disabled = true 
: op[i].disabled = false ;
}

当前函数以伪代码[也未完成]编写。 也许有人可以为我想要的东西编写正常运行的js代码。我不知道如何才能访问数组值'level'等等。帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

由于问题是要求编写代码,所以它的外观如下:

&#13;
&#13;
var select = document.getElementById('select');

select.addEventListener('change', function() {
    var index = select.selectedIndex;
    var children = select.children;
    
    for (var i = 0; i < children.length; i++) {
        if (i <= index) {
            children[i].removeAttribute('disabled');
        } else {
            children[i].setAttribute('disabled', 'disabled');
        }
    }
});
&#13;
<select id="select">
    <option>One</option>
    <option>Two</option>
    <option>Three</option>
    <option>Four</option>
    <option>Five</option>
    <option>Six</option>
</select>
&#13;
&#13;
&#13;

基本上我们采用所选选项的索引,检查每个子索引是否更少或更大,并根据该索引设置禁用属性。