我在jsf中使用ajax请求自动完成,我希望一旦我点击网站中的任何其他点,自动完成建议就会消失。 我正在使用onblur,并调用脚本将显示更改为none,但脚本似乎没有工作。
这是我的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>
答案 0 :(得分:0)
元素的实际ID不是test
。 JSF组成ID(可能是[formId]:test
)以避免重复ID(在表,列表等中使用时更是如此)。
您可以尝试document.getElementById('[formId]:test')...
。如果您不确定[formId]
是什么,可以使用浏览器检查器实用程序检查实际的ID。你可以只做onblur="hidebox(this)"
并直接使用JS函数中的对象。