readOnlyInput在p:calendar primefaces中不起作用

问题描述 投票:6回答:5

我用这个:

    <p:calendar id="popupCal" yearRange="c:c+1" lang="fr" required="true"
                requiredMessage="Date obligatoire" readonlyInput="true"
                navigator="true" pattern="dd-M-yyyy" locale="fr"
                showOn="both" value="#{commandeMB.commande.dateCmd}"
                mindate="#{commandeMB.todaysDate}" />

正如我所写,我将readonly输入设置为true

我也测试了readonly为true,两者都是true但没有结果,总是可以改变日期

这是一个错误吗?

先感谢您

jsf-2 primefaces calendar readonly
5个回答
5
投票

如果你想要那个用户必须无法更改日历日期的值,只需查看它然后在showOn="none"属性中使用readonly="true"p:calender,我已经使用它和它的工作(我使用Primefaces 5.0希望它适用于所有版本):


1
投票

当您只允许用户使用面板选择日期并且无法从输入更改日期时,将使用readonly。如果您希望用户无法更改日期,则必须使用disabled属性来执行此操作。

如果您希望用户可以看到日期选择器并且无法更改日期,您可以通过以下方式禁用dateselectevent:

<p:calendar onfocus="$('#ui-datepicker-div td').unbind();" readonly="true"/>

1
投票

实际上我发现问题是套管。在我们的应用程序中,它是readonlyInput,它就是它的工作原理。 readOnlyInput没有。


0
投票

使用PF 3.4,此解决方案将:

  • 在只读文本输入字段上保留1.0不透明度(即,不要使用disabled = true调暗不透明度);
  • 从字段中删除Datepicker类;
  • 从现场取消绑定事件。

(1)创建一个函数:

function setCalendarVis(readOnly) { if(readOnly) $('input:text').removeClass('hasDatepicker').unbind(); }

(2)定义日历组件:

<p:calendar readonly="#{bean.readonly}" value="#{bean.datefield}" mode="popup"/>

(3)调用函数,例如,可能通过p:datatable上的ajax事件:

<p:ajax event="rowDblselect" update="@form" oncomplete="setCalendarVis(#{bean.readonly});"/>

我的应用程序使用不同的样式进行读写功能:

我对unbind()的使用相当暴力。您可以对其进行优化以仅取消绑定特定事件。

火焰套装!


0
投票

只需在输入中添加[readonlyInput]="true"属性即可。

例:

 <p-calendar [readonlyInput]="true">
© www.soinside.com 2019 - 2024. All rights reserved.