2016-07-22 6 views
0

Versuchen Sie eine Validierungsbibliothek zu schreiben, aber irgendwo stecken.Stop-Funktion in Objekt zur Ausführung mit Flag

var validation_event = { 
    mandatory: function(that) { 
     if (!$(that).val() && $(that).data('placeholder')) { 
     alert('Please fill in ' + $(that).data('placeholder') + '.'); 
     return false; 
     } 
    }, 

    email: function(that) { 

     var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
     if ($(that).val() == '' || !regex.test($(that).val())) { 
     alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.'); 
     return false; 
     } 
    } 
    } 

https://jsfiddle.net/wvzbq9h2/

Try einreichen klicken Sie dort 2 Alarm zu sehen sind. Ansonsten funktionieren die Dinge gut.

+0

Was ist wieder Ihre Frage? Das Beispiel funktioniert gut in der von Ihnen bereitgestellten jfiddle-Verbindung. –

+0

@ sgarcia.dev Stoppen Sie die Validierung beim ersten Fehler. Es sollte keine zweite Warnung geben – eltonkamami

+1

@ sgarcia.dev Es ausgelöst zweimal Warnung, die ich nicht wollen –

Antwort

0

Überprüfung der Wert der Validate weiter zurück und Rückkehr aus $.each wenn es falsch ist

continue_validate = validation_event[val](self); 
    if(!continue_validate){ 
     return false; 
    } 

Updated JsFiddle

+0

es funktioniert nicht, die ungültige Adresse nicht alarmiert. Überprüfen Sie Ihren Code erneut –

+0

@EuniceChia hat den Code aktualisiert. Benutzerdefinierte Elementattribute benötigen ein 'Daten-' Präfix. Validierungsmethoden sollten True zurückgeben, wenn kein Fehler auftritt. – eltonkamami

Verwandte Themen