如何重置<f:ajax> disabled属性

时间:2017-07-20 13:27:56

标签: jsf

给出以下代码:

 <h:inputText id="minRate" value="#{bakingController.minRate}">
    <f:convertNumber type="currency" pattern="#{msg.currencyPattern}" maxFractionDigits="0"/>                                                    
    <f:ajax event="keyup" listener="#{bankingController.listProviders()}" execute="minRate" render="minRate btn-submit" disabled="#{facesContext.validationFailed}"/>
 </h:inputText>  

如果第一个keyup-event的验证失败,我想禁用ajax-listener,例如用户输入一些非数字。但是当我清除输入字段或输入有效数字时,虽然父字段被重新渲染,但它不会被重新激活。我该怎么解决?

你可以回答帮助。

1 个答案:

答案 0 :(得分:0)

有一种思维缺陷-.-

如果输入符合相应的格式,我必须使用javascript验证。如果javascript-function返回true,则只调用侦听器。所以不需要disabled属性。

<h:inputText id="minRate" value="#{bakingController.minRate}" onkeyup="return $.isNumeric(this.value)">
    <f:convertNumber type="currency" pattern="#{msg.currencyPattern}" maxFractionDigits="0"/>                                                    
    <f:ajax event="keyup" listener="#{bankingController.listProviders()}"     
                          execute="minRate" render="minRate btn-submit"/>
</h:inputText>