Java 无法在选择事件上触发h:selectonemenu

Java 无法在选择事件上触发h:selectonemenu,java,jquery,jsf,jsf-2,Java,Jquery,Jsf,Jsf 2,当我选择selectmenu的项目时,我想获得select事件,但它不起作用我不想使用更改事件,因为当我选择一个已经选择的项目时,更改事件将再次触发。HTML DOM选择事件仅在文本输入字段中选择(突出显示)文本时才会触发,例如和。但是呈现的是HTML元素,而不是元素。它不允许您在字段中选择文本。select事件在此不起任何作用 从技术上讲,在每个元素上设置单击事件应该适合您 $(“[id='formId:menuId']选项”)。单击(函数(){ 警报(“2”); }); ... 然而,(

当我选择selectmenu的项目时,我想获得
select
事件,但它不起作用
我不想使用
更改
事件,因为当我选择一个已经选择的项目时,
更改
事件将再次触发。

HTML DOM
选择
事件仅在文本输入字段中选择(突出显示)文本时才会触发,例如
。但是
呈现的是HTML
元素,而不是
元素。它不允许您在字段中选择文本。
select
事件在此不起任何作用

从技术上讲,在每个
元素上设置
单击事件应该适合您


$(“[id='formId:menuId']选项”)。单击(函数(){
警报(“2”);
});
...
然而,(毫不奇怪)这在任何IE浏览器中都不起作用,甚至在IE9中也不起作用

您的最佳选择实际上是
change
事件。这是完全交叉的。另一个完全不同的选择是使用radiobutton组,它可以通过
呈现。
单击
事件应该完全按照您的要求执行


只有在文本输入字段(如
)中选择(突出显示)文本时,才会触发HTML DOM
选择事件。但是
呈现的是HTML
元素,而不是
元素。它不允许您在字段中选择文本。
select
事件在此不起任何作用

从技术上讲,在每个
元素上设置
单击事件应该适合您


$(“[id='formId:menuId']选项”)。单击(函数(){
警报(“2”);
});
...
然而,(毫不奇怪)这在任何IE浏览器中都不起作用,甚至在IE9中也不起作用

您的最佳选择实际上是
change
事件。这是完全交叉的。另一个完全不同的选择是使用radiobutton组,它可以通过
呈现。
单击
事件应该完全按照您的要求执行



@Jigar:…我以前也遇到过这个问题,无法解决。我注意到这似乎发生在SelectItems上,而不是字符串上。因此,您的意思是,如果使用SelectItem和string,这个问题就会得到解决。您应该接受以下答案:
onchange
文档中说:当此元素失去焦点时执行Javascript代码,并且自获得焦点后其值已被修改。所以,从理论上讲,这是不应该发生的。@Jigar:…我以前也遇到过这个问题,无法解决它。我注意到这似乎发生在SelectItems上,而不是字符串上。因此,您的意思是,如果使用SelectItem和string,这个问题就会得到解决。您应该接受以下答案:
onchange
文档中说:当此元素失去焦点时执行Javascript代码,并且自获得焦点后其值已被修改。所以,理论上,这不应该发生。谢谢。我从你那里受益匪浅。谢谢。我从你那里受益匪浅。
<h:selectOneMenu id="queueSelectMenu" styleClass="selectOneMenue-style" 
    tabindex="1" value="#{reworkQueueMB.queueType}" onselect="alert('2');" >
    <f:selectItems value="#{queueMB.queueSelectItems}" />
</h:selectOneMenu>