2016-03-01 90 views
0

我正在设计使用jsf 2.0和primefaces的页面技术。在我的页面中,我插入一张主要面孔日历。当用户点击日历来更改默认日期时,会显示一个警告消息,它是一个包含两个命令按钮的对话框。现在我试图做的是,当用户点击取消命令按钮时,日期应该改回到默认日期,该日期在页面加载时从第一次页面填充。我写了一个Java脚本,但它不起作用。重置primefaces日历日期到系统日期

<label>Date<label> 
<p:calendar readonlyInput="true" widgetVar="calDate" yearRange="c-20:c+20" navigator="true" id="b1incomeeffectfrom#{incmStatus.index}" value="#{userDate.effectiveFrom}" pattern="dd/mm/yyyy"> 
    <p:ajax event="dateSelect" oncomplete="checkForDefault(this);" global="false"/> 
</p:calendar> 

<p:dialog rendered="#{user.Lock}" widgetVar="dlg1" header="Warning" modal="true"> 
    <h:panelGroup layout="block" styleClass="modal-dialog"> 
    <h:panelGroup layout="block" styleClass="modal-content"> 
     <h:panelGroup layout="block" styleClass="modal-body"> 
     <div class="form-horizontal"> 
      <h:panelGroup layout="block" styleClass="form-group"> 
      <h:outputLabel styleClass="col-xs-8 control-label">Are you sure want to change?</h:outputLabel> 
      </h:panelGroup> 
     </div> 
     </h:panelGroup> 
     <h:panelGroup layout="block" styleClass="modal-footer"> 
     <p:commandButton value="Ok" type="button" styleClass="btn btn-primary" onclick="PF('dlg1').hide();PF('dlg2').show();" /> 
     <p:commandButton value="Cancel" type="button" styleClass="btn btn-primary" onclick="resetDate();" /> 
     </h:panelGroup> 
    </h:panelGroup> 
    </h:panelGroup> 
</p:dialog> 

的JavaScript

function resetDate(){ 
    PF('dlg1').hide(); 
    calDate.setDate(null); 
} 
+0

对话框如何与问题相关? ?为什么在对话框中创建一个对话框? PF对话框有标题/正文/页脚小平面/ .. – Kukeltje

回答

0

您的日历值从您的支持bean(userDate.effectiveFrom)的到来。你将不得不改变那里的值来生效

<p:commandButton value="Cancel" type="button" styleClass="btn btn-primary" 
onsuccess="PF('dlg1').hide()" action="#{userDate.resetDate()}" update="calDate" /> 

class UserDate{ 
[..] 

    public void resetDate(){ 
    this.effectiveFrom = initialDate; 
    } 
[..] 
}