Ответ 1
Событие HTML DOM change
является неправильным событием, когда вы хотите прослушать, нажата ли кнопка радио (или флажок). Вы должны использовать событие click
для этого.
Значение переключателя (и флажка) в принципе никогда не изменяется. Он всегда имеет одинаковую ценность. Вопрос в том, будет ли это значение отправлено на сервер или нет. Это определяется "проверенным" состоянием, которое обычно запускается событием DOM click
.
Фактическое поведение события change
на радиообменах/флажках зависит от используемого веб-браузера. В браузере IE особенно непоследовательно. Это зависит не только от используемой версии, но и от используемого режима рендеринга (режим quirks vs standard). Возможно, вы использовали IE во время тестирования.
По умолчанию тип event
PrimeFaces <p:ajax>
(и стандартный JSF <f:ajax>
), который является valueChange
, уже автоматически охватывает это:
<p:ajax update="msgQuestion" event="valueChange" />
Это приведет к автогенерации правильного обработчика событий change
в текстовых вводах и выпадающих меню и обработчике событий click
в радиообменах и флажках.
Но, как сказано, это уже по умолчанию тип event
. Просто опустите его вообще.
<p:ajax update="msgQuestion" />