readonly不在多个autoComplete primefaces中工作

时间:2013-01-20 08:37:30

标签: jsf-2 autocomplete primefaces

readonly的{​​{1}}属性不起作用。设置<p:autoComplete>后,我仍然可以输入文字。我不想使用readonly="true",因为它不会让我删除任何选择。这是怎么造成的,我该如何解决?

3 个答案:

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