脚本没有在jsf中执行

时间:2013-05-24 11:35:56

标签: jsf autocomplete

我在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>

1 个答案:

答案 0 :(得分:0)

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

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