readonly
的{{1}}属性不起作用。设置<p:autoComplete>
后,我仍然可以输入文字。我不想使用readonly="true"
,因为它不会让我删除任何选择。这是怎么造成的,我该如何解决?
答案 0 :(得分:3)
似乎是一个已知问题(至少在3.4.2中)
Issue 5070: auto complete readonly but send ajax to server
可能的解决方法:
改为使用outputText或只读inputText组件。
PrimeFaces Community Forum : autocomplete readonly: still send ajax
答案 1 :(得分:0)
我遇到了同样的问题。但是,我找到了一个解决方法。您可以将自动完成集的各个内容设置为只读。
<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
document.getElementById('contentForm:myId_input').setAttribute("readOnly","true");
});
// ]]>
</script>
此处 myId 是自动填充的ID。输入框的ID为 myId_input ,这只是&#39; _input&#39;附在最后。
就现有值而言,您可以使用选择和取消选择事件来限制更改。
答案 2 :(得分:0)
这是我的解决方法。 它看起来像自动完成组件
<h:panelGroup layout="block" styleClass="ui-autocomplete ui-autocomplete-multiple">
<h:panelGroup layout="block" styleClass="ui-autocomplete-multiple-container ui-widget ui-inputfield ui-corner-all">
<ui:repeat value="#{bean.values}" var="value">
<h:panelGroup layout="block" styleClass="ui-autocomplete-token ui-state-active ui-corner-all">
<h:outputText styleClass="ui-autocomplete-token-label" value="#{value}"/>
</h:panelGroup>
</ui:repeat>
</h:panelGroup>
</h:panelGroup>