2017-01-29 42 views
1

我正在使用p:selectOneMenu來顯示數據。我使用filter="true"filterMatchMode="startsWith"過濾數據:p:selectonemenu onkeyup事件爲大寫

<p:selectOneMenu id="mun" value="#{list}" converter="#{lookupConverter}" 
       filter="true" filterMatchMode="startsWith" 
       validator="#{validate}"> 
    <p:ajax listener="#{getAll}" update="plac"/> 
    <f:selectItem itemLabel="#{msg['choose.value']}" itemValue="#{null}" noSelectionOption="true" /> 
    <f:selectItems value="#{municipalities}" 
        var="m" 
        itemValue="#{m}" 
        itemLabel="#{m.description}"/> 
</p:selectOneMenu> 

而且我喜歡當文本框onkeyup事件輸入的文本用戶開始輸入要大寫。

編輯:

當我說的文本框中我的意思是在這個紅色正方形:

enter image description here

+0

哪裏是文本框?菜單是否可編輯? –

回答

0

當你檢查哪裏放置菜單的頁面,你可以看到輸入濾波器或多或少以下ID:

j_idt88:advanced_filter 

此基礎上,事實上,該輸入將與advanced_filter總是後綴。你可以編寫你的javascript代碼:

<script> 
    document.addEventListener('DOMContentLoaded', function() { 
     addAdvancedFilterActions(); 
    }, false); 

    var addAdvancedFilterActions = function(){ 
     var elements = document.querySelectorAll('[id$=advanced_filter]'); 

     for (var key in addAdvancedFilterActions) { 
      var input = addAdvancedFilterActions[key]; 
      input.addEventListener('keyup',function(){ 
       upper(input); 
       },false); 
     } 
    }; 

    var upper = function(input){ 
      var inputValue = input.value; 
      document.writeIn(inputValue.toUpperCase()) 
    }; 

</script> 

這將遍歷頁面上的所有輸入,並應用上面的函數。試試吧