2013-08-19 6 views
7

कोणीय के साथ फॉर्म सत्यापन करना मैं उपयोगकर्ता को सबमिट करने पर सभी आवश्यक फ़ील्ड को गलत तरीके से चिह्नित करना चाहता हूं।एंजुलरजेस फॉर्म फोर्स में फोर्ज एनजी-गंदी

मैं इनपुट के साथ नियंत्रण शैली बनाने के लिए input.ng-dirty.ng-अवैध का उपयोग कर रहा हूं। तो मैं चाहता हूं कि आवश्यक नियंत्रणों पर एनजी-गंदे सेट करें (या सभी नियंत्रण .. यह मेरे लिए समान होगा) जब उपयोगकर्ता फॉर्म सबमिट करता है।

प्रमाणीकरण काम कर रहा है। मैं समझता हूं कि, मैं जो कोशिश कर रहा हूं वह गलत हो सकता है, लेकिन मुझे ऐसा करने का कोई और तरीका नहीं मिला, सिवाय इसके कि मुझे लगता है कि कुछ सही होने के लिए बहुत जटिल है।

मैं क्या करने की कोशिश की थी:

<div ng-app> 
    <form novalidate> 
     <input name="formvalue" type="text" ng-model="formvalue" required /> 
     <input type="submit" /> 
    </form> 
</div> 

http://jsfiddle.net/yq4NG/

उत्तर

8

के डिफ़ॉल्ट आवश्यक फ़ील्ड द्वारा

<div ng-app>...</div> 

http://jsfiddle.net/yq4NG/1/

में यह लपेटकर द्वारा अपने jsfiddle करने कोणीय जोड़कर शुरू करते हैं इनपुट (गंदे) पर मान्य किया जाएगा। यदि आप उन्हें किसी भी इनपुट (प्रिस्टिन) से पहले जमा करने के लिए मान्य करना चाहते हैं, तो आप अपने सबमिट बटन पर एक फ़ंक्शन चला सकते हैं जो प्राचीन फ़ील्ड की जांच करेगा और उन्हें गंदे करेगा।

है यही कारण है कि मैं उदाहरण में क्या किया है: http://jsfiddle.net/yq4NG/6/

आप शायद कस्टम formatters और प्रमाणकों का उपयोग कर एक पुन: प्रयोज्य समाधान का निर्माण कर सकता है, लेकिन यह बंद समाधान पर एक सरल है।

संपादित करें:

सरल फिर से उपयोग सिर्फ कक्षाएं: http://jsfiddle.net/yq4NG/8/

संपादित करें [के रूप में टिप्पणी में @XMLilley ने सुझाव दिया]:

क्योंकि कोणीय एक $setDirty() विधि है कि $setPristine() के बराबर है प्रदान नहीं करता है $modelValue की सामग्री के साथ $ viewValue को अपडेट करके हम $dirty स्थिति को ट्रिगर कर रहे हैं। यह कुछ भी नहीं बदलता है, लेकिन उपयोगकर्ता को प्रत्येक $pristine फ़ील्ड मैन्युअल रूप से दर्ज किया गया है और कुछ भी बदले बिना मूल्य के साथ गड़बड़ कर रहा है।

+0

आपके समाधान के लिए धन्यवाद। मैं बेवकूफ को बचाने के लिए भूल गया, यही कारण है कि मैं एनजी-ऐप खो रहा था। लेकिन यह जटिल समाधान है कि मैं इससे बचने की कोशिश कर रहा था। क्या कुछ ऐसा नहीं है जिसमें मुझे याद आ रही है? मुझे विश्वास नहीं है कि यह एक दुर्लभ कोने-केस उपयोग है। (एक सत्यापन को दिखाने के लिए एक ही मूल्य को नियंत्रित करने के लिए असाइन करना, थोड़ा अजीब लगता है) – Fernando

+0

कोणीय सत्यापन स्थान और तत्काल प्रतिक्रिया के बारे में है। सर्वर साइड सत्यापन के विपरीत। आवश्यक फ़ील्ड मान्य हैं। यदि आवश्यक गुण सेट किए गए हैं और भरे नहीं हैं, तो वर्ग "ng-invalid-required" वर्ग द्वारा नोट किया गया है, तो फॉर्म सबमिट नहीं करेगा। लेकिन खेतों में गंदे नहीं हैं क्योंकि वे नहीं बदला गया है। –

+1

@ फ़र्नान्डो मैंने अपने उत्तर को एक और समाधान के साथ अपडेट किया है जो आपको आपकी आवश्यकताओं के अनुरूप बेहतर लगेगा। यदि यह समाधान नहीं है जिसे आप ढूंढ रहे हैं तो मुझे बताएं। यदि ऐसा है, तो कृपया इसे एक उत्तर के रूप में चिह्नित करें। –

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