Javascript для очистки раскрывающихся полей работает только один раз для каждого раскрывающегося поля.

0

Я смотрел на все связанные вопросы/ответы на StackOverflow, но не нашел решения, характерного для моей ситуации.

У меня есть следующий HTML:

<select name="search_month" onclick="javascript: $('#categories').val(null);" id="months">
  <option value="">----------------</option>
  ...                                                               
</select>
<select name="search_category" onclick="javascript: $('#months').val(null);" id="categories">
  <option value="">----------------</option>
  ...                                                               
</select>

Если я нажму на раскрывающийся список "search_month", "search_category" очистится просто отлично и наоборот. Но он работает только один раз для выпадающего меню.

Итак, скажем, я сделал выбор для "search_month", изменил свое мнение и сделал выбор для "search_category", а затем передумал... СНОВА... и решил искать по месяцам вместо этого (используя "search_month"), когда я нажимаю на выделение в раскрывающемся списке "search_month", javascript не удаляет раскрывающийся список "search_category".

Что мне не хватает?

Благодарю!

  • 1
    Код, который вы предоставили, работает в этом jsfiddle: jsfiddle.net/w6E88/1
  • 0
    Кстати - вам НИКОГДА не нужно "javascript:" в событии. Что еще это будет?
Показать ещё 4 комментария
Теги:
drop-down-menu

2 ответа

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

Я не могу сказать, почему действие onclick не стреляло во второй раз в каждом раскрывающемся списке, но на основании нескольких ответов я удалил "javascript:" из события, и я смог изменить использование "onclick" на "onchange" ", в результате чего очистка выпадающих ящиков работает должным образом. Итак, мой новый код выглядит следующим образом:

<select name="search_month" onchange="$('#categories').val(null);" id="months">
  <option value="">----------------</option>
  ...                                                               
</select>
<select name="search_category" onchange="$('#months').val(null);" id="categories">
  <option value="">----------------</option>
  ...                                                               
</select>

Это то, что сработало для меня в Chrome/Mac.

0

Запретить встроенный javascript:/использовать настройку следующим образом: http://jsfiddle.net/w6E88/2/

$("#month, #categories").change(function() {
    //do your logic here
    //retrieve value with $(this).find('option:selected').attr('value')
    //reset with $(this).value... or $("#month").val..
});
  • 0
    Я согласен, но не вариант на данный момент.

Ещё вопросы

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