任务是使用javascript绑定2个select,这样满足以下条件:
1.如果select 1中选择了3,则第二个中选择了3,1、2、3option
可以选择,0不可以选择.option
option
option
option
2.如果选择1中选择option
了2,则第二次选择值为2,1option
和option
2可供选择,option
0和option
3不可供选择。
3.如果在select 1中选择了1 - 在第二次select中选择了1 option
,其余的都不能选择。
4.如果第1次选择100,第2次选择0 option
,其余都无法选择。
任务似乎不难,但有些事情不成功....
当第一个选择100时,第二个中0和1都可用...
function roomsSincGuest(param1, param2) {
return function (event) {
var value = param1.value;
var options = param2.options;
var optionsLength = options.length;
for (var i = 0; i < optionsLength; i++) {
options[i].disabled = true;
if (+options[i].value === 0 && +value === 100) {
options[i].selected = true;
options[i].disabled = false;
}
if (options[i].value < value && +options[i].value !== 0) {
options[i].disabled = false;
}
if (options[i].value === value) {
options[i].selected = true;
options[i].disabled = false;
}
}
};
}
var first = document.querySelector('#first');
var second = document.querySelector('#second');
first.addEventListener('change', roomsSincGuest(first, second));
<form>
<select id="first" name="first">
<option value="1" selected="">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="100">100</option>
</select>
<select id="second" name="second">
<option value="3" selected="" >3</option>
<option value="2" >2</option>
<option value="1">1</option>
<option value="0">0</option>
</select>
</form>
作为一个选项,创建一个将第一个选择的值映射到第二个的对象
最简单的方法: