отключить выбор значения после выбора значения из одного тега выбора

0

У меня есть два варианта выбора для выбора времени, если я выберу одно значение, скажем, 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

  • 0
    И ваш подход к решению этой проблемы выглядит так ...?
  • 0
    проверь эту скрипку
Показать ещё 2 комментария
Теги:

3 ответа

1
Лучший ответ

я думаю, это может быть то, что вы ищете

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; 
         }
  }
}
  • 0
    это работало, у меня есть еще один вопрос, как мы можем отключить значения верхних значений из выбранного, включая выбранные, и только нижние значения должны быть выбраны
1

Добавьте два внутренних для цикла внутри условия 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;
     }

  }    
} 
1

Код 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", не может быть снова активировано.

  • 0
    это работало, у меня есть еще один вопрос, как мы можем отключить значения верхних значений из выбранного, включая выбранные, и только нижние значения должны быть выбраны
  • 0
    Проверьте новый ответ, который я добавил
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню