Событие HTML DOM select
запускается только при выборе (выделении) текста в поле ввода текста, например <input>
и <textarea>
.Но <h:selectOneMenu>
отображает элемент HTML <select>
, а не <input>
.Это не позволяет вам выбирать текст в поле.Событие select
здесь ничего не делает.
Технически, установка события click
для каждого отдельного элемента <option>
должна работать для вас.
<h:form id="formId">
<h:selectOneMenu id="menuId" value="#{reworkQueueMB.queueType}">
<f:selectItems value="#{queueMB.queueSelectItems}" />
</h:selectOneMenu>
<script>
$("[id='formId:menuId'] option").click(function() {
alert("2");
});
</script>
...
Однако, это (неудивительно) не работает в любом браузере IE, даже не в IE9.
Ваша лучшая ставка - это действительно change
событие.Это полностью кроссбраузер.Совершенно другая альтернатива - вместо этого использовать группу радиокнопок, которая может быть визуализирована с помощью <h:selectOneRadio>
.Событие click
должно делать именно то, что вы хотите.
<h:selectOneRadio value="#{reworkQueueMB.queueType}" onclick="alert('2')">
<f:selectItems value="#{queueMB.queueSelectItems}" />
</h:selectOneRadio>