我有一个与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'等等。帮助将不胜感激!
答案 0 :(得分:1)
由于问题是要求编写代码,所以它的外观如下:
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;
基本上我们采用所选选项的索引,检查每个子索引是否更少或更大,并根据该索引设置禁用属性。