我对包含 ajax 字段的 JSF 2 表单有疑问。当我在光标仍在 ajaxified 输入字段中时使用鼠标按下表单的提交按钮时,在后台 bean 中触发操作之前,该字段的输入值不会被提交。附加的验证器和转换器也不会被触发。
<h:form id="invoice">
...
<h:inputText value="#{invoiceBean.amount}" required="true" validator="#{invoiceBean.validateAmount}">
<f:converter converterId="CurrencyConverter" />
<f:ajax event="blur" render="@this"/>
</h:inputText>
<h:commandButton action="#{invoiceBean.processInvoice()}" />
</h:form>
我还尝试使用增强命令按钮,<f:ajax />
但结果保持不变。相同表单上的其他(非 ajax)字段(上面的代码片段中未显示)已正确提交。如果我在提交之前单击页面上的其他位置而不是直接使用按钮时,也会提交、转换和验证 ajax 字段。
在提交表单时/之前提交该字段是否有什么我缺少的?