Фильтр PF6 selectOneMenu не запускается с помощью «Вставить» или «CTRL Пробел».

#jsf #primefaces #selectonemenu

Вопрос:

Используя начальные шрифты 6, я пытаюсь отфильтровать свое p:selectOneMenu, когда пользователь вставляет значение или когда пользователь удаляет значение с помощью CTRL Backspace, другими словами, когда значение все равно изменилось.

Пожалуйста, найдите мой код ниже.

     <p:selectOneMenu id="providerURLDD" widgetVar="providerURLDD"
        value="#{switchProviderBean.selectedProvider}" 
        panelStyle="width:240px" effect="fade" filter="true"
        style="width:240px" filterMatchMode="contains" 
        required="true" 
        requiredMessage="#{msg['selectProvider']}">
      <f:selectItem itemLabel="Select" />
      <f:selectItems value="#{switchProviderBean.providerAccounts}"
         var="providerAcc"
         itemLabel="#{providerAcc.code}-#{providerAcc.switchAccountId}-#{providerAcc.name}"
         itemValue="#{providerAcc.switchAccountId}" />
    </p:selectOneMenu>
 

Я также пытался использовать Javascript следующим образом:

         function getTextAreaSelection(textarea) {
            var start = textarea.selectionStart,
                end = textarea.selectionEnd;
            return {
                start: start,
                end: end,
                length: end - start,
                text: textarea.value.slice(start, end)
            };
        }
    
    function detectPaste(textarea, callback) {
        textarea.onpaste = function() {
            var sel = getTextAreaSelection(textarea);
            var initialLength = textarea.value.length;
            window.setTimeout(function() {
                var val = textarea.value;
                var pastedTextLength = val.length - (initialLength - sel.length);
                var end = sel.start   pastedTextLength;
                callback({
                    start: sel.start,
                    end: end,
                    length: pastedTextLength,
                    text: val.slice(sel.start, end)
                });
            }, 1);
        };
    }
    
    
    
    var textarea = document.getElementById("switchProviderChoice:providerURLDD_filter");
    detectPaste(textarea, function(pasteInfo) {
        console.log('perform filter');
        PF('providerURLDD').filter();
    }); 
 

Комментарии:

1. Какая версия шрифтов? Я чувствую, что это было исправлено в более новых PF.

2. спасибо за ваш ответ @M Я использую версию 6, и да, она была исправлена в более новой версии, мои менеджеры отказались обновлять «боясь, что другие компоненты также будут затронуты», есть ли способ исправить это без обновления (например, с помощью javascript)?.

3. Ах, хорошо, так что вам, возможно, придется просмотреть историю фиксаций проблем на GitHub, а затем вы сможете исправить свой PF 6 с помощью этого исправления. Если вы найдете конкретную проблему, которая ее исправила, опубликуйте ее здесь, и я могу сделать вам обезьяну.,