Как мне удалить параметры из выпадающего списка в javascript?

#javascript #html

#javascript #выберите #combobox

Вопрос:

Есть ли какие-либо примеры, которые позволят мне удалить параметры из выпадающего списка с помощью JavaScript?

Вот код:

 <select autocomplete="off" id="sSec1" tabindex="0" name="sSec1" class="isSelected styled security selectOriginal">
      <option id="" value="">Select</option>
      <option id="o1" value="What is the name of your first pet?">What is the name of your first pet?</option>
      <option id="o2" value="What is your favorite food?">What is your favorite food?</option>
      <option id="o3" value="What is your favorite holiday?">What is your favorite holiday?</option>
      <option id="o4" value="What is your favorite movie?">What is your favorite movie?</option>
      <option id="o5" value="What is your favorite sport?">What is your favorite sport?</option>
      <option id="o6" value="In what city were you born?">In what city were you born?</option>
      <option id="o7" value="What is your mother's maiden name?">What is your mother's maiden name?</option>
    </select>
  

Вот список 2:

 <select autocomplete="off" id="sSec2" tabindex="0" name="sSec2" class="isSelected security styled">    
      <option id="" value="">Select Second Question</option>
      <option id="o1s2" value="What is the name of your first pet?">What is the name of your first pet?</option>
      <option id="o2s2" value="What is your favorite food?">What is your favorite food?</option>
      <option id="o3s2" value="What is your favorite holiday?">What is your favorite holiday?</option>
      <option id="o4s2" value="What is your favorite movie?">What is your favorite movie?</option>
      <option id="o5s2" value="What is your favorite sport?">What is your favorite sport?</option>
      <option id="o6s2" value="In what city were you born?">In what city were you born?</option>
      <option id="o7s2" value="What is your mother's maiden name?">What is your mother's maiden name?</option>
    </select> 
  

Теперь я хочу, чтобы это произошло, когда для контрольного вопроса № 1 выбран любой параметр. Этот параметр не должен присутствовать для контрольного вопроса № 2.

Ответ №1:

Вы можете удалить параметр, установив для него значение null.

 document.getElementById("sSec1").options[0] = null;
  

Редактировать:

Вот рабочий пример: http://jsfiddle.net/c5wFn /

 document.getElementById("sSec1").addEventListener("change", 
    function(select)
    {
        if (this.value != "")
        {
            var select2 = document.getElementById("sSec2");
            for (var i = 0; i < select2.options.length; i  )
            {
                if (this.value == select2.options[i].value)
                {
                    select2.options[i] = null;
                    break;
                }
            }
        }
    }, false);
  

Единственное, с чем вам нужно будет поработать, это то, что при изменении параметра вам, вероятно, нужно вернуться к первым элементам списка и добавить все невыбранные элементы в список, чтобы вы вернули вопрос, который был удален при предыдущем выборе. Это не должно быть сложно, я просто не хотел вдаваться во все детали.

Также не уверен, используете ли вы jquery или нет, поэтому я работал с простым старым javascript. Но регистрация события должна быть проверена на совместимость, поскольку это не будет работать на всех.