0

我在 jsf 中使用 ajax 请求进行自动完成,我希望在单击网站中的任何其他点后自动完成建议消失。我正在使用 onblur,并调用脚本来将显示更改为无,但脚本似乎没有工作。

这是我的 xhtml 中的自动完成代码:

<rich:autocomplete id="test" required="true" onblur="hidebox()"                 requiredMessage="Field is blank" mode="cachedAjax"  
minChars="3" value="#{action.do.testmethod}"                    autocompleteMethod="#{action.autocomplete}">
</rich:autocomplete>

这是隐藏框代码:

<script type="text/javascript">     
    function hidebox() {
          alert("Test");
          document.getElementById('test').style.display = "none";
    }
</script>
4

1 回答 1

0

元素的实际 id 不是test. JSF 组合 ID(可能是[formId]:test)以避免重复 ID(在表、列表等中使用时更是如此)。

你可以尝试做document.getElementById('[formId]:test')...。如果您不确定是什么,您可以使用浏览器检查器实用程序来检查实际的 ID [formId]。您可以onblur="hidebox(this)"直接在 JS 函数中执行和使用该对象。

于 2013-05-24T11:44:31.597 回答