【发布时间】:2012-09-12 14:06:16
【问题描述】:
我在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>
【问题讨论】:
-
听起来好像您的 JS 函数之一崩溃了,因此 JS 上下文处于终止状态(这反过来又导致 ajax 请求根本不被触发)。检查 JS 控制台是否有任何错误。
-
@BalusC 是的,看起来像我删除了脚本并且没有脚本它工作正常。我的脚本错误控制台仍然没有错误。顺便感谢 BalusC...
-
对不起,我不明白,你的第二个还有问题吗?没有脚本它工作正常吗?如果您的控制台中没有任何内容,请在您的脚本中放置一些警报,以查看它是否可以通过它们而不会死亡。此外,我不确定“return false”语句如何与 a4j 的 oncomplete 一起使用(如果有的话),但可能值得看看你的 js 是否返回 false,如果是,是否有任何影响。对不起,我不是 jsf 大师;所以只是抓住这里。祝你好运。
-
@mschor 感谢您的回复...这是我在代码中发现的故障错误。实际上它正在调用我的java方法
generatePrescriptionQuantity。该方法内部的逻辑太大,并且在某些条件之间有一个返回调用,这导致我返回并且我所需的代码没有执行。这只是我的跟踪问题。我需要更完美。但是感谢@BalusC(JSF 大师...)和您...