我用这个:
<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但没有结果,总是可以改变日期
这是一个错误吗?
先感谢您
如果你想要那个用户必须无法更改日历日期的值,只需查看它然后在showOn="none"
属性中使用readonly="true"
和p:calender
,我已经使用它和它的工作(我使用Primefaces 5.0希望它适用于所有版本):
当您只允许用户使用面板选择日期并且无法从输入更改日期时,将使用readonly
。如果您希望用户无法更改日期,则必须使用disabled
属性来执行此操作。
如果您希望用户可以看到日期选择器并且无法更改日期,您可以通过以下方式禁用dateselectevent:
<p:calendar onfocus="$('#ui-datepicker-div td').unbind();" readonly="true"/>
实际上我发现问题是套管。在我们的应用程序中,它是readonlyInput,它就是它的工作原理。 readOnlyInput没有。
使用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:datatable上的ajax事件:
<p:ajax event="rowDblselect" update="@form" oncomplete="setCalendarVis(#{bean.readonly});"/>
我的应用程序使用不同的样式进行读写功能:
我对unbind()的使用相当暴力。您可以对其进行优化以仅取消绑定特定事件。
火焰套装!
只需在输入中添加[readonlyInput]="true"
属性即可。
例:
<p-calendar [readonlyInput]="true">