Я смотрел на все связанные вопросы/ответы на 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".
Что мне не хватает?
Благодарю!
Я не могу сказать, почему действие 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.
Запретить встроенный 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..
});