2013-02-19 101 views
18

एक रूप में मेरे पास दो कमांड बटन के साथ कुछ इनपुट टेक्स्ट है, एक स्वीकार करने के लिए और एक रद्द करने के लिए। केवल रद्द बटन के लिए सत्यापन अक्षम कैसे कर सकते हैं?प्राइमफ़ेस रद्द करें बटन पर सत्यापन अक्षम करें

<h:form id="detailsForm"> 
    <p:inputText id="editUsername" value="#{userController.editUser.usrUsername}" /> 
    <p:inputText id="editFirstName" value="#{userController.editUser.usrFirstName}" /> 
    <p:inputText id="editLastName" value="#{userController.editUser.usrLastName}" /> 
    <p:commandButton value="Accept" update=":detailsForm" actionListener="#{userController.onDetailsEditAccept}" /> 
    <p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" /> 
</h:form> 

मैं पहले से ही खेतों पर required="false" डालने की कोशिश की, लेकिन यह काम नहीं किया। मैंने फ़ील्ड पर <f:validateBean disabled="true" /> डालने की भी कोशिश की और यह काम नहीं किया।

उत्तर

25

अपने रद्द commandButton में विशेषता immediate="true" विशेषता का उपयोग करें। यह, कठिन,, लंघन लागू अनुरोध मान द्वारा प्रपत्र के पूरे प्रसंस्करण छोड़ देगा प्रक्रिया सत्यापन और अद्यतन मॉडल चरणों मान।

<p:commandButton value="Cancel" update=":detailsForm" actionListener="#{userController.onDetailsEditCancel}" immediate="true"/> 
13

रद्द करें बटन में process="@this" विशेषता का उपयोग करें। यह पूरे फॉर्म को प्रस्तुत करने से रोक देगा।

या आप इसके बजाय p:button का उपयोग कर सकते हैं (हालांकि इसमें actionListener विशेषता नहीं है)। this other Q/A

0

यदि आप फॉर्म जमा नहीं करना चाहते हैं तो देखें। आपको केवल <p:button> का उपयोग करना चाहिए। <p:commandButton> फ़ॉर्म सबमिट करता है।

<p:button value="delete All" 
action="#{reloadBean.purge}" update="@form"/> 
+0

आप पहले से दिए गए उत्तर को दोहरा रहे हैं और अप्रासंगिक attriubutes सहित क्यों दोहरा रहे हैं? – BalusC

+0

यह मेरे लिए यह काम है, इसलिए मैं अपना उदाहरण साझा करना चाहता हूं। क्षमा करें अगर मैं सही ढंग से मंच का उपयोग नहीं करता – zedtimi

+0

बस आपके लिए काम करने वाले उत्तर को वोट दें। – BalusC