h:selectOneListbox onchange和a4j:支持事件onchange冲突

时间:2012-09-12 14:06:16

标签: java jsf ajax4jsf

我在jsp页面中有如下代码...

<h:selectOneListbox size="1" id="doseUnit"  onchange="generateSignature(),quantityUnitSelecator()" value="#{templatePrescriptionMaintenanceBackingBean.prescriptionUnit}">
<f:selectItems value="#{templatePrescriptionMaintenanceBackingBean.doseUnit}"/>
<a4j:support ajaxSingle="true" reRender="quantity,signature,signatureHidden,doseWarningList" actionListener="#{templatePrescriptionMaintenanceBackingBean.generatePrescriptionQuantity}"
event="onchange">
</a4j:support>

如果我在a4j中使用event="onchange",则不会调用我的generatePrescriptionQuantity,但如果我使用event="onblur"则效果正常。所以我认为这是列表框的onchnage方法的原因。实际上我必须在变化上产生这种效果,并且还必须调用那些脚本。


更新


当我做下面的修改时,第一次选择的问题解决了,但是对于第二次选择(这只是在第一次选择下面)同样的问题继续...我不明白为什么这是????

<h:selectOneListbox size="1" id="doseUnit" value="#{templatePrescriptionMaintenanceBackingBean.prescriptionUnit}">
<f:selectItems value="#{templatePrescriptionMaintenanceBackingBean.doseUnit}"/>
<a4j:support ajaxSingle="true" reRender="quantity,signature,signatureHidden,doseWarningList" actionListener="#{templatePrescriptionMaintenanceBackingBean.generatePrescriptionQuantity}"
event="onchange" oncomplete="generateSignature(),quantityUnitSelecator()">
</a4j:support>

<h:selectOneListbox size="1" id="route" value="#{templatePrescriptionMaintenanceBackingBean.prescriptionRoute}">
<f:selectItems value="#{templatePrescriptionMaintenanceBackingBean.route}"/>
<a4j:support ajaxSingle="true" reRender="quantity,signature,signatureHidden,doseWarningList" actionListener="#{templatePrescriptionMaintenanceBackingBean.generatePrescriptionQuantity}"
event="onchange" oncomplete="generateSignature()">
</a4j:support>

1 个答案:

答案 0 :(得分:1)

h4:selectOneListbox中的onchange是否与a4j:support中的onchange不兼容?尝试从列表框中删除onchange并将其放在a4j标记的onsubmit属性中。