2016-03-01 93 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; 
    } 
[..] 
}