2012-08-08 11 views
5

मेरे पास वह पृष्ठ है जिसमें मैं कुछ इकाई संपादित करता हूं। उस पृष्ठ में दो कमांड बटन हैं। एक "बैक" है और एक "सेव" है और उस पृष्ठ पर भी मेरे पास इनपुट फ़ील्ड्स (idInputSubject) के साथ फॉर्म है। उनमें से कुछ की आवश्यकता है, कुछ नहीं हैं।कमांड पर सत्यापन को अनदेखा करें बटन दबाएं

मैं कैसे सुनिश्चित कर सकता हूं कि हम "बैक" बटन दबाएं (संपादन रद्द करें और वापस जाएं) सत्यापन को अनदेखा कर दिया जाएगा, जो अब मामला नहीं है। अब, जब मैं या तो "बैक" या "सेव" बटन दबाता हूं तो सत्यापन के संदेश प्रकट होते हैं यदि मैंने सही मानों (idInputSubject) के साथ दायर आवश्यक नहीं किया है।

दोनों "वापस" और "सहेजें" बटन उसी रूप में कर रहे हैं:

<h:form id="idFormMeasureDetail" styleClass="bodyForm" prependId="false"> 
    ... 
    <p:commandButton value="#{contentMB.msg.label_back.value}" 
     action="#{chooseMeasureControllerMB.aSearch}" 
     rendered="#{detailMeasureMB.navigation eq 0}" ajax="false" 
     icon="ui-icon-arrowreturnthick-1-w"/> 
    <p:commandButton value="#{contentMB.msg.button_save.value}" ajax="false" 
     icon="ui-icon-disk" actionListener="#{detailMeasureControllerMB.alApplyChanges}" 
        title="#{contentMB.msg.tip_Apply.value}" /> 

    ... 
    <p:inputTextarea id="idInputSubject" value="#{detailMeasureMB.measure.aufgabe}" 
    readonly="#{!userSessionMB.supervisor and !detailMeasureMB.isCreator}" 
    required="#{globalSessionMB.globalWebOptionsMap['MMRequiredSubject'].propvalue}" 
      title="#{contentMB.msg.tip_Betreff.value}" 
      autoResize="false" style="width:100%;" > 
    </p:inputTextarea> 
    <p:message id="inputSubjectMsg" for="idInputSubject" display="icon" /> 
    ... 

</h:form> 

ChooseMeasureControllerMB:

@ManagedBean(name = "chooseMeasureControllerMB") 
@RequestScoped 
public class ChooseMeasureControllerMB extends BaseMeasureControllerMB { 
... 
public String aSearch() { 
      ... 
    // navigate to target-page 
    return "/pages/mm/showMeasuresList.xhtml?faces-redirect=true"; 
} 
... 
} 

उत्तर

10

रोकने/कुछ बटन क्लिक उपयोग

पर सत्यापन छोड़ चाहते हैं

immediate="true" उस विशिष्ट बटन पर

immediate="true" के बारे में अच्छी व्याख्या, following BalusC answer

And here a nice diagram that shows how imemdiate="true works"

+0

आपको समझाया जाना चाहिए कि यह क्यों काम करता है –

0

संक्षेप में पढ़ा जब आप "वापस" बटन पर क्लिक कर रहे हैं, आप पत्र भरना होगा और डेटा मान्य है। इसे रोकने के लिए, बटन को किसी अन्य रूप में रखें या नेविगेशन के लिए जावा-स्क्रिप्ट का उपयोग करें।

आम तौर पर, जब आप एक ऑपरेशन रद्द करना चाहते हैं तो आप डेटा जमा नहीं करना चाहते हैं, क्योंकि इसे त्यागना है। कुछ क्लाइंट साइड एक्शन का प्रयोग करें। मुझे लगता है कि आप नेविगेशन के लिए <p:commandButton> या <p:button> का भी उपयोग कर सकते हैं। इस तरह फॉर्म या तो सबमिट नहीं किया गया है।

संबंधित मुद्दे