p:commandbutton click时提交表单

时间:2016-01-27 06:56:34

标签: jsf primefaces

我在JSF Web应用程序中使用primefaces。为了获得用户输入,我使用了primefaces键盘组件,它工作正常。问题是从键盘组件获取用户输入并单击commandButton导致页面重新加载。

<p:keyboard id="default" value="#{paymentBean.mobileNumber}" keypadOnly="true" size="50" for="numberInput" />

<p:commandButton id="enterNoteBtn" action="#{paymentBean.validatePayment()}" value="#{msg['billpayment.cash.message']}" 
                            onclick="onEnterNoteBtn();" async="true" />

但是当使用primefaces inputText而不是键盘组件时,它不会导致页面重新加载。

<p:inputText id="numberInput" value="#{paymentBean.mobileNumber}"  autocomplete="off" />

<p:commandButton id="enterNoteBtn" action="#{paymentBean.validatePayment()}" value="#{msg['billpayment.cash.message']}" 
                            onclick="onEnterNoteBtn();" async="true" />

我想弄清楚这种行为的原因(我使用的是primefaces版本5.3.1)。

更新:

我发现页面提交的原因是点击按钮时调用javascript函数。

function onEnterNoteBtn(){
    var number = document.getElementById("cashForm:numberInput").value;
}

由于ID无效,导致表单提交。

感谢。

0 个答案:

没有答案