使用javascript更改primefaces selectonemenu标签/值

时间:2015-07-06 11:36:41

标签: javascript jsf primefaces

我有一个文本域和一些selectonemenus。如果我在文本字段中写入内容,我想更新所选项目/下拉列表的标签,反之亦然:

enter image description here

问题是我无法从文本字段事件中访问下拉标签。

文本字段的JSF:

<p:inputText id="nameInput"value="#{searchProject.searchName}" onkeyup="textToDropdown()"/>

selectonemenu的JSF:

<p:selectOneMenu id="brand" value="#{searchProject.brand}">
    <f:selectItem itemLabel="" itemValue="" />
    <f:selectItems value="#{createProject.brands}" var="i" itemLabel="#{i.value} - #{i.label}" itemValue="#{i}"/>
    <f:converter binding="#{AttributeConverter}" />
</p:selectOneMenu>

到目前为止我的Javascript:

<script type="text/javascript">
    function textToDropdown(){
    var x = document.getElementById("selectionForm:entryActionTabs:namePatternInput");
    //if the text of the input is bigger than 2, fill the first dropdown        
    if(x.value.length >= 2)
        {
            //I DONT KNOW HOW DO ACCESS THE LABEL OF THE DROPDOWN
        }
    }
</script>

那么我试图改变标签是什么?我检查了DOM并在下拉列表下面找到了一个标签:

picture of the DOM

因此我尝试直接访问标签,使用javascript更改文字:

var label= document.getElementById("selectionForm:entryActionTabs:brand_selection2_label");

但我只得到一个未定义的对象...我的第二种方法是使用.innerHtml但是如何使用它访问标签?还有其他三个div-classes。

1 个答案:

答案 0 :(得分:0)

获得标签:

Program received signal SIGSEGV, Segmentation fault.
0x90909090 in ?? ()

但我仍然想知道为什么我不能直接使用完整ID,如果有更好的方法来获得标签。我确定有一个。