2016-04-17 4 views
0

Ich muss E-Mail-Adresse mit JS oder JQ überprüfen. Momentan benutze ich JS, kann aber den Wert des Textfelds nicht als Parameter für JS übergeben. Ich möchte, dass dies bei Änderungen implementiert wird. Ich fand Lösungen nur mit einer Taste zu validieren, die ich nicht will.Validierung der E-Mail-Adresse mit JavaScript oder JQuery

Hier ist der HTML-Code.

  <div class="form-group"> 
       <label class="control-label">Father's E-Mail Address</label> 
       <input maxlength="30" pattern=".{1,50}" onchange="validateEmail(document.getElementById('txtFatherEmail').value);" title="Input Invalid" type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/> 
      </div> 

Hier ist der JS, den ich verwendet habe.

function validateEmail(email) {    
     var emailReg = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
     var valid = emailReg.test(email); 

     if (!valid) { 
      alert("False"); 
     } else { 
      alert("True"); 
     } 
    } 

Auch ich würde gerne wissen, ob es ein besserer Weg, dies zu tun.

+0

Ich frage mich, ob 'runat = "server"' stört. Sie könnten in Betracht ziehen, es zum Testen zu entfernen. –

+0

Ich bin mir nicht sicher, aber ich würde es nicht onchange, nur auf Unschärfe, für die Effizienz der Benutzeroberfläche laufen lassen ... – softwareplay

+0

Verweisen Sie dies - https://jqueryvalidation.org/email-method/ –

Antwort

-1

Warum verwenden Sie getElementById mit "Wert"? Sollten Sie nicht die jQuery-Syntax verwenden? Denken Sie daran, dass ein jquery-Element kein javasript-don-Element ist. Vielleicht ist das der Trick ...

+2

jQuery wird nirgends in der Frage außerhalb der Tags verwendet. 'getElementById' ist eine Standard-DOM-Methode, sie gibt ein HTML-Element-Objekt zurück, das Objekt hat eine' value' -Eigenschaft. – Quentin

0

Wenn ich richtig verstehe, möchten Sie Eingabe während der Eingabe validieren.
Um dies zu tun, können Sie onkeyup Ereignis verwenden.

<div class="form-group"> 
    <label class="control-label">Father's E-Mail Address</label> 
    <input maxlength="30" pattern=".{1,50}" onkeyup="validateEmail(this.value);" title="Input Invalid" type="text" required="required" class="form-control" placeholder="Enter Father's E-Mail Address" id="txtFatherEmail" runat="server"/> 
</div> 
-1
     function isvalid(x){ 
          regexp1 = /@/g 
          gmail = /gmail.com/g 
          hotmail = /hotmail.com/g 
          if(regexp1.test(x) == true){ 
           if(x.match(regexp1).length == 1){ 
            x = x.split("@") 
            if(gmail.test(x[1]) == true){ 
             if(x[1].match(gmail).length == 1 && x[1].length == 9){ 
              alert("ok valid") 

             }else{ 
              alert("not valid") 

             } 
            }else if(hotmail.test(x[1]) == true){ 
             if(x[1].match(hotmail).length == 1 && x[1].length == 11){ 
              alert("ok valid") 
             }else{ 
              alert("not valid") 
             } 
            }else{ 
              alert("no mail") 
            } 
           }else{ 
            alert("too much @") 
           } 
          }else{ 
           alert("no @") 
          } 
         } 

diese Funktion ist die jquery E-Mail-Check-Funktion und es sieht einfach für gmail und hotmail und wenn Sie nur E-Mail überprüfen möchten von heißen und gmail es ist die zuverlässige Funktion für sie