#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 с помощью этого исправления. Если вы найдете конкретную проблему, которая ее исправила, опубликуйте ее здесь, и я могу сделать вам обезьяну.,