我尝试用ajax进行实验。我希望从inputText输入的字符串输出到outpuLabel。
<h:form>
<h:inputText id="str" value="#{f.str}">
<f:ajax render="num"/>
</h:inputText>
<h:outputLabel id="num" value="#{f.str}">
</h:outputLabel>
</h:form>
但num
的值仅在我输入并点击鼠标时更新,而不是在键入str
时更新。如何在打字过程中更新num
?
答案 0 :(得分:0)
<f:ajax event>
UIInput
组件的<h:inputText>
默认设置为valueChange
,如果What values can I pass to the event attribute of the f:ajax tag?在onchange
生成的<input type="text">
属性中调用ajax,则会显示{{3}} {1}}元素(您可以通过在webbrowser中打开JSF页面并右键单击查看源来自行查看)。
因此,只有在触发HTML DOM change
事件时才会触发ajax请求。也就是说,当你改变输入元素的值然后输入元素失去焦点(模糊)。
根据您的功能要求,您实际上希望在触发HTML DOM keyup
事件时触发ajax请求。在这种情况下,您需要明确指定。
<f:ajax event="keyup" ... />