Идентификаторы должны быть уникальными. Вместо этого используйте классы:
<input class='companyreg radio' name='companyreg' type='radio' value='yes' /> Yes
<input class='companyreg radio' name='companyreg' type='radio' value='no' /> No
и обработчик события может быть упрощен до:
$(".companyreg").click(function(){
if (this.value === "yes") {
compfieldset.slideDown();
}
else {
compfieldset.slideUp();
}
});
Нет необходимости в :selected
селекторе в вашем обработчике событий. В отличие от флажков, переключаемая кнопка является выбранной кнопкой.
В качестве альтернативы вы можете отказаться от class
и id
и использовать селектор атрибутов:
$('input[name=companyreg]')
Вы также можете использовать делегирование события , используя .delegate()
. Нет необходимости связывать один и тот же обработчик событий с обоими элементами.
Почему не работает с несколькими идентификаторами?
Идентификаторы должны быть уникальными, поведение извлечения элементов по идентификатору, если они имеют одинаковый идентификатор, не указано. Однако большинство браузеров возвращают элемент first , который появляется в DOM, поэтому обработчик событий связан только с переключателем yes
.