Как удалить параметры из выпадающего списка в JavaScript? - PullRequest
2 голосов
/ 31 декабря 2010

Существуют ли какие-либо примеры, которые позволят мне удалить параметры из выпадающего списка с помощью 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 Ответ

6 голосов
/ 31 декабря 2010

Вы можете удалить параметр, установив для него значение 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.Но регистрация события должна быть проверена на совместимость, так как это не будет работать на всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...