JQuery выбрать вариант отменить выбор - PullRequest
0 голосов
/ 03 февраля 2011

Я пытаюсь отменить выбор элемента выбора с помощью jQuery.Вот мой сценарий:

У меня есть 3 варианта выбора:
[Выбрать 1]
[Выбрать 2]
[Выбрать 3]

Сценарий: Выбор 1 заполняется данными из вызова Ajax.Поэтому для параметра «Выбор 1» можно выбрать «Вариант 1», «Параметр 2», «Параметр 3» и т. Д.
Когда вы выбираете параметр из «Выбор 1», он заполняет «Выбор 2» данными, а при выборе «Выбор 2» - «Выбор 3» и т.

В зависимости от того, что вы выбираете, он помещает значения из этих «: выбранных» параметров и применяется к переменной с именем «url».

Так что в случае, если вы выбираете только «Выбрать 1»":
url = 'search / for / this / select1 /'

В этом случае вы выбираете" Select 1 "и" Select 2 "
url = 'search / for / this /select1 / select2 /

и т. д.

Это способ, которым я пишу код jQuery:

var url = 'search/for/this';  
if(element1.is(':selected')) {
  url += element1.val();    
  // makes url = 'search/for/this/select1val/';  
     if(element2.is(':selected')) {  
        url += element1.val();    
         // makes url = 'search/for/this/select1val/select2val/';  
        if(element3.is(':selected')) {  
            url += element1.val();    
            // makes url = 'search/for/this/selectval1/select2val/select3val/';  

         }  
    }  
}  

Проблема в том, что для этого требуется отменить выборследующие опции после того, как был выбран предыдущий, но поскольку есть заполненные данные, кажется, что они автоматически возвращают true, когда они проходят проверку условия «: selected» в примере кода выше.Есть мысли о том, как выполнить эту функцию?Если я не разъясню свою проблему.Пожалуйста, запросили более подробную информацию, и я добавлю их. Спасибо -Chris-

1 Ответ

3 голосов
/ 03 февраля 2011

Похоже, вы добавляете большую сложность к тому, что в противном случае должно быть достаточно простой задачей.

Как вы уже описали, вы хотите получить значения всех выбранных значений из вашей капли.списки и объединить их в URL.

Функция jQuery $.map() отлично подходит для этого примера.Попробуйте следующий код:

var searchTerms = $('option:selected').map(function() {
  return $(this).val();
}).get().join('/');

url = 'search/for/this/' + searchTerms;

Затем вы выполняете этот код, когда вам действительно нужно получить выбранные значения (например, когда ваш запрос отправлен, например. Возможно, вы также захотите получить текст опции)чем его фактическое значение, в этом случае код изменится на return $(this).text();

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