[英]jsf.ajax.request not working completely
我试图制作一个自定义自动填充框,但遇到了一些麻烦。 现在我有一个输入,可以在按下键盘时调用此函数
function pingAutoComplete(event)
{
console.log("pingAutoComlete Called");
window.clearTimeout(window.keyTimeout);
//Wait 2 seconds before we attempt to pingAutoComplete incase user has not finished typing
window.keyTimeout = setTimeout(function() {
jsf.ajax.request(event, "keydown", {execute:'searchTerm',render:'autoCompletePanel'})
autoCompleteLayoutPanel.show();
return false;
}, 2000);
return false;
}
自动完成面板包含一系列如下所示的选择
<h:selectOneListbox id="vehicleResult" title="Vehicles"
value="#{searchBean.searchTerm}"
converter="entityConverter"
required="false"
rendered="#{!searchBean.filterAutoComplete().isEmpty()}">
<f:selectItems value="#{searchBean.filterAutoComplete()}"
var="searchItem" itemValue="#{searchItem}"
itemLabel="#{searchItem.displayString}"
itemLabelEscaped="true" />
</h:selectOneListbox>
现在,当调用javascript时,似乎在后端点击了searchBean.filterAutoComplete(),但实际上并没有更新gui中的选择列表。 有人知道为什么吗?
您必须指定确切的客户端ID。 那是生成的HTML元素的id
属性的值,而不是JSF组件本身的id
属性的值。 如果JSF组件放置在<h:form>
,则默认情况下,客户端ID之前将带有其ID。
因此,以下小组
<h:form id="form">
<h:panelGroup id="autoCompletePanel">
客户端ID的form:autoCompletePanel
。 您需要在render
属性中确切指定该ID。 相同的规则也适用于顺便execute
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.