2016-08-16 7 views
10

फ़ॉर्म को अमान्य नहीं करता है मेरे पास एक ऐसा फॉर्म है जो मैं अपने फोन फ़ील्ड्स को इंटेल-टेल-इनपुट मॉड्यूल में रीगेक्स का उपयोग करने से बदलने की प्रक्रिया में हूं। मैं वैध # ​​एस की जांच में & भ्रम की समस्याओं में भाग रहा हूं।

मैं इन क्षेत्रों के कई के साथ एक रूप है ...

<div class="row"> 
<div class="col-xs-2"> 
    <label for="cellPhone" 
      translate>CONTACT.CELL</label> 
</div> 
<div class="col-xs-6" 
    ng-class="{'has-error': !cellPhoneFocus && forms.contactForm.cellPhone.$invalid && forms.contactForm.cellPhone.$touched }"> 
    <input type="text" class="form-control intlPhoneInput" 
      id="cellPhone" name="cellPhone" 
      ng-model="contact.cellPhone.display" 
      ng-focus="cellPhoneFocus = true" 
      ng-blur="cellPhoneFocus = false; validatePhone($event)"> 
    <div ng-messages="forms.contactForm.cellPhone.$error" 
     ng-show="!cellPhoneFocus && forms.contactForm.cellPhone.$touched" 
     class="errorMessages"> 
     <p ng-message="pattern" translate> 
      CRUD.VALID_PHONE</p> 
    </div> 
</div> 

और सबमिट करें ...

<button type="submit" class="btn btn-primary" ng-disabled="forms.contactForm.$invalid" id="saveContactLink" translate>CRUD.SAVE</button> 
तब मेरे नियंत्रक में

(टाइपप्रति) ...

//In Constructor 
$scope.validatePhone = this.validatePhone.bind(this); 

//Outside constructor 
private validatePhone(eventObject: any) { 
    let thePhoneField = $('#' + eventObject.target.id); 
    let phoneIsValid = thePhoneField.intlTelInput("isValidNumber"); 

    this.$scope.forms.contactForm[eventObject.target.id].$invalid = !phoneIsValid; 
    this.$scope.forms.contactForm[eventObject.target.id].$error = {"pattern": !phoneIsValid}; 
} 

यह ठीक से मेरी है-त्रुटि वर्ग और त्रुटि संदेश सेट करता है, लेकिन यह FORM को अमान्य में सेट नहीं करता है। मैंने $ setValidity की कोशिश की है ...

this.$scope.forms.contactForm[eventObject.target.id].$setValidity('pattern', !phoneIsValid); 

... लेकिन ऐसा कुछ भी नहीं लगता है।

मैं फ़ील्ड को अमान्य में कैसे सेट करूं, सही एनजी-संदेश दिखाएं (यदि एक से अधिक है), और सुनिश्चित करें कि फॉर्म $ त्रुटियों को अपडेट किया गया है तो सबमिट अक्षम है?

उत्तर

3

किया गया था बाहर कर देता है $ setValidity काम कर रहा है, लेकिन साथ-साथ setValidity होने $ अमान्य और $ त्रुटि के कारण कुछ गड़बड़ी हो।। किसी फ़ील्ड को अमान्य करते समय पिछले दो सक्षम/अक्षम मेरे सबमिट बटन को सही तरीके से टिप्पणी करना।

0

तुम बस इतना की तरह अमान्य प्रपत्र निर्धारित करने में सक्षम होना चाहिए:

forms.contactForm.$invalid = true 
+0

हालांकि यह फ़ॉर्म को अमान्य कर देगा, यह फ़ील्ड तय होने पर इसे वैध बनाने में मदद नहीं करता है, क्योंकि मैं फॉर्म को मान्य करने के लिए वैध रूप से वैध नहीं करता हूं ... क्योंकि एक से अधिक फ़ील्ड हैं। – NikZ

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