2017-03-03 44 views
1

我在對話框中有一個inputTextArea,並希望當用戶單擊取消按鈕時不應發送/更改bean屬性,但它確實如此。對話框中的InputTextarea不應該處理,但它確實

<p:dialog header="Notizen" id="paketNotizenDialog" modal="true" 
      widgetVar="paketNotizenDialogWV"> 
      <h:form> 
       <p:panelGrid columns="1"> 
        <p:inputTextarea scrollHeight="200" rows="6" cols="33" autoResize="false" 
         value="#{paketErstellenDialogController.selectedPaket.notiz}" /> 
       </p:panelGrid> 
       <p:commandButton value="Save" process="@form" oncomplete="PF('paketNotizenDialogWV').hide();"/> 

       <p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" process="@none" update="@none" /> 
      </h:form> 
     </p:dialog> 

其打開的對話框按鈕:

<p:commandButton id="notizEintragButton" value="T" process="@this" 
         onclick="PF('paketNotizenDialogWV').show();" /> 

任何提示?提前致謝。

+0

[MCVE]請... – Kukeltje

回答

2

由於您使用的是commandButton,因此默認行爲是使用ajax請求提交封閉表單。

我懷疑你想要做的是重置表單輸入並關閉對話框。在這種情況下,您應該選擇type="reset",根據primefaces文檔:

重置按鈕不提交表單,只是重置表單內容。

一旦做到這一點,觸發關閉JavaScript代碼:

<p:commandButton value="Cancel" type="reset" 
     onclick="PF('paketNotizenDialogWV').hide();"/> 

如果你不想重置表單,只需關閉對話框,然後使用:

<p:commandButton value="Cancel" type="button" 
    onclick="PF('paketNotizenDialogWV').hide();"/> 

哪根據primefaces文檔會:

按鈕用於執行自定義javascript而不會導致ajax/non-ajax請求的 。要創建一個按鈕組類型「按鈕」

更新

如果想要的值從後臺bean復位,然後使用primefaces的reset input fields功能。

在你的情況下,它會是這樣的:

<p:panelGrid columns="1"> 
     <p:inputTextarea id="input" scrollHeight="200" rows="6" cols="33" autoResize="false" 
       value="#{paketErstellenDialogController.selectedPaket.notiz}" /> 
</p:panelGrid> 

<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" 
    process="@this" update="input" > 
    <p:resetInput target="input" /> 
</p:commandButton> 
+0

我只是不希望出現這種情況的bean屬性正在設置以防止用戶點擊取消按鈕。新的重新打開應顯示最後的bean屬性狀態... – LupoZ

+0

然後第二個選項將適用於你。鍵入=「按鈕」 –

+0

非常感謝你,我會盡快... – LupoZ

0

剛剛從<p:commandButton value="Cancel" oncomplete="PF('paketNotizenDialogWV').hide();" process="@none" update="@none" />添加type="button"和刪除process="@none" update="@none"

+0

它沒有工作。我只是希望打開對話框時的值應該保留,當我點擊取消。但是當我輸入新值並點擊取消並重新打開對話框時,該值被覆蓋。 – LupoZ

+0

您是否嘗試在標記之外放置表單標記? –

+0

是的,我做了...沒有任何改變... – LupoZ

相關問題