У меня есть два варианта выбора для выбора времени, если я выберу одно значение, скажем, 9:00 утра из одного тега select. 9:00 утра должно быть отключено из другого кода тега select.
<select>
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option> </select> so on.
<select>
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option> </select> so on..
Это два тега select.
Заранее спасибо,
Ameeth
я думаю, это может быть то, что вы ищете
http://codepen.io/anon/pen/xegKj
HTML:
<select id="TimeFirst" onChange="fSetTimeOptions(this,'TimeSecond');">
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option>
</select>
<select id="TimeSecond" onChange="fSetTimeOptions(this,'TimeFirst');">
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option>
</select>
ЯШ:
function fSetTimeOptions(selObj, fvOtherSel) {
var OtherSel = document.getElementById(fvOtherSel);
var TimeValue = selObj.options[selObj.selectedIndex].value;
alert(TimeValue);
for (var i = 0; i < OtherSel.options.length; i++) {
if (OtherSel.options[i].value == TimeValue) {
OtherSel.options[i].disabled = true;
} else {
OtherSel.options[i].disabled = false;
}
}
}
Добавьте два внутренних для цикла внутри условия if, чтобы отключить предыдущие значения и удалить часть else.
Я добавил это
for(var j=i;j>=0;j--) {
mySel.options[j].disabled=true;
}
for(j=i+1;j<mySel.options.length; j++) {
mySel.options[j].disabled=false;
}
внутри условия if.
код:
for (var i = 0; i < mySel.options.length; i++) {
if (mySel.options[i].value == val) {
mySel.options[i].disabled=true;
for(var j=i;j>=0;j--) {
mySel.options[j].disabled=true;
}
for(j=i+1;j<mySel.options.length; j++) {
mySel.options[j].disabled=false;
}
}
}
Код HTML:
<select id="sel1" onchange="disableSelect(this);">
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option> </select>
<select id="sel2">
<option value="9:00am">9:00am</option>
<option value="10:00am">10:00am</option> </select>
Javascript:
function disableSelect(content) {
var val = content.value;
var mySel = document.getElementById("sel2");
for (var i = 0; i < mySel.options.length; i++) {
if (mySel.options[i].value == val) {
mySel.options[i].disabled=true;
}
else {
mySel.options[i].disabled=false;
}
}
}
Вы должны найти параметр в другом элементе, используя значение текущего выбора:
if (mySel.options[i].value == val) {
mySel.options[i].disabled=true;
}
Тогда, если это правда, отключите его. или вы должны включить его. Если вы не включите его обратно, то если пользователь снова изменит значение в "sel1", значение, которое ранее было отключено в "sel2", не может быть снова активировано.