我用这个:
<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
我也测试了readonly为true,两者都是true但没有结果,总是可以更改日期
这是一个错误吗?
谢谢你的推荐
答案 0 :(得分:5)
如果您希望该用户无法更改日历日期的值,只需查看它,然后在showOn="none"
属性中使用readonly="true"
和p:calender
,我已经使用过它它的工作(我使用Primefaces 5.0希望它适用于所有版本):
答案 1 :(得分:1)
readonly
。如果您希望用户无法更改日期,则必须使用disabled
属性来执行此操作。
如果您希望用户可以看到日期选择器并且无法更改日期,您可以通过以下方式禁用dateselectevent:
<p:calendar onfocus="$('#ui-datepicker-div td').unbind();" readonly="true"/>
答案 2 :(得分:1)
其实我发现问题是套管。在我们的应用程序中,它是readonlyInput,它就是它的工作原理。 readOnlyInput没有。
答案 3 :(得分:0)
使用 PF 3.4 ,此解决方案将:
(1)创建一个函数:
function setCalendarVis(readOnly) {
if(readOnly)
$('input:text').removeClass('hasDatepicker').unbind();
}
(2)定义日历组件:
<p:calendar readonly="#{bean.readonly}" value="#{bean.datefield}" mode="popup"/>
(3) 例如,可以通过p:databable:
上的ajax事件调用该函数 <p:ajax event="rowDblselect" update="@form" oncomplete="setCalendarVis(#{bean.readonly});"/>
我的应用程序使用不同的样式进行读写功能:
我对unbind()的使用相当暴力。您可以对其进行优化以仅取消绑定特定事件。
火焰套装!
答案 4 :(得分:0)
只需在输入中添加[readonlyInput]="true"
属性。
示例:
<p-calendar [readonlyInput]="true">
答案 5 :(得分:-1)
readonly 不适用于 p:calendar,但您可以使用 disabled 代替。它们的外观并不相同,但无论如何都可以显示其价值。
就像这样:
<p-calendar [disabled]="true"></p-calendar>
希望能解决您的问题!
答案 6 :(得分:-1)
这就是我实现只读行为的方式:
<p-calendar [readonlyInput]="true" [showOnFocus]="false">