7

我用这个:

    <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}" />

正如我所写,我将 readonyinput 设置为 true

我也测试了只读为真和两者都为真但没有结果,总是可以更改日期

这是一个错误吗?

谢谢你

4

6 回答 6

6

如果您希望该用户不能更改日历日期的值,只需查看它然后使用showOn="none"和属性readonly="true"p:calender我已经使用它及其工作(我正在使用 Primefaces 5.0 希望它适用于所有版本):

于 2015-12-02T14:36:49.097 回答
1

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

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

<p:calendar onfocus="$('#ui-datepicker-div td').unbind();" readonly="true"/>
于 2013-05-09T12:16:52.060 回答
1

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

于 2017-02-17T15:21:43.613 回答
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) 调用函数,例如,可能通过 ap:databable 上的 ajax 事件:

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

我的应用程序使用不同样式的读写功能: 在此处输入图像描述

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

穿上火焰套装!

于 2015-02-10T23:19:38.153 回答
0

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

例子:

 <p-calendar [readonlyInput]="true">
于 2019-02-15T07:35:00.280 回答
-1

这就是我实现只读行为的方式:

<p-calendar [readonlyInput]="true" [showOnFocus]="false">
于 2021-06-24T05:38:36.083 回答