2012-09-12 19 views
0

我有这样的代码下面的JSP页面...H:selectOneListbox平变化和A4J:支持事件的onchange冲突

<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> 

如果我使用event="onchange"内A4J他并没有叫我generatePrescriptionQuantity但如果我用event="onblur"它工作正常。所以我认为它是listbox的onchnage方法的原因。实际上,我必须在交换中产生这种效果,并且必须调用这些脚本。


UPDATE


解决的问题的第一选择,当我做了以下修改但对于第二选择(这是仅低于第一selectone)同样的问题继续...我不明白为什么这个是?

<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> 

+0

听起来好像你的一个JS函数崩溃了,从而使JS上下文处于终止状态(这反过来导致ajax请求根本不被触发)。检查JS控制台是否有任何错误。 – BalusC

+0

@BalusC是看起来像是一样我删除了脚本和withought脚本它工作正常。仍然是我的脚本错误控制台没有错误。顺便说一句,感谢BalusC ... – Ketan

+0

我很抱歉,我不理解,你仍然有问题与你的第二个?没有脚本,它工作得很好?如果您的控制台中没有任何内容,请在脚本中添加一些警报,以查看它是否能够通过它们而不会死亡。另外,我不确定“回报错误”语句可能会如何处理a4j的不完整(如果有的话),但可能值得查看您的js是否返回false,如果有的话,是否有任何影响。对不起,我不是一个jsf大师;所以只是在这里抓。祝你好运。 – mschor

回答

1

难道说你在H平变化:selectOneListbox不会在A4J一个onchange发挥出色:支持?尝试从列表框中移除您的onchange,并将其放入a4j标记的onsubmit属性中。

+0

而不是Onsubmit我把它放在对我有效的oncomplete事件中,但我有多个selectonelistbox的顺序,我必须采取这一步所有a4j每一个选择。对于第一选择这个解决方案的工作,但在非常接下来的选择,不。让我更新我的代码更清晰。 – Ketan

+0

感谢mschor的帮助。我有更新我的问题。 plz帮助。 – Ketan