如何在表单提交期间提交JSF ajax字段

如何在表单提交期间提交JSF ajax字段,ajax,forms,jsf,jsf-2,Ajax,Forms,Jsf,Jsf 2,我对包含ajax字段的JSF2表单有一个问题。当光标仍在ajaxified输入字段中时,当我使用鼠标按下表单的submit按钮时,在后台bean中触发操作之前,字段的输入值不会被提交。此外,连接的验证器和转换器也不会被触发 <h:form id="invoice"> ... <h:inputText value="#{invoiceBean.amount}" required="true" validator="#{invoiceBean.validateAmo

我对包含ajax字段的JSF2表单有一个问题。当光标仍在ajaxified输入字段中时,当我使用鼠标按下表单的submit按钮时,在后台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>

...
我还尝试使用
增强命令按钮,但结果保持不变。相同表单上的其他(非ajax)字段(上面的代码段中未显示)已正确提交。如果在提交之前单击页面上的其他位置,ajax字段也会被提交、转换和验证,但直接使用按钮时不会

在表单提交时/之前提交字段是否有任何遗漏?

关于ajax行为:与默认事件valueChange一起使用,这是所有输入组件的默认事件。这实际上相当于省略
事件
属性:

<f:ajax render="@this" />

否则,它将默认为
@此
,因此会显示您的努力。

感谢您的输入:)我已删除
event=“blur”
。但不管按钮是否有
,字段值都不会提交。在这种情况下,您可能会遇到转换或验证问题。把一些日志放进去。为了确保提交该字段,请使用firebug检查HTTP流量。同时添加
组件并使用ajax@Downvoter当前位置在我的回答中,到底是什么让你不安?
<f:ajax execute="@form" />