2017-01-29 45 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 событий введенного текста в верхнем регистр.

Edit:

Когда я говорю, текстовое поле, я имею в виду на этом красном квадрате:

enter image description here

+0

где находится текстовое поле? меню доступно для редактирования? –

ответ

0

Когда вы проверяете страницу, где размещено меню, вы можете увидеть, что входной фильтр имеет более или менее следующие ID:

j_idt88:advanced_filter 

Основываясь на том, что и тот факт, что этот вход будет всегда с суффиксом advanced_filter. . Вы можете написать свой яваскрипт кода:

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

Это будет перебирать все входы, как это на странице и применить верхнюю функцию. Попробуйте