2016-04-24 4 views
1

Neu bei Javascript, aber ich versuche zu überprüfen, ob drei Felder (1) einige Daten enthalten und dass (2) die dritte enthält beliebige Zahlen. Der dritte ist ein Telefon # Feld. Ich weiß, dass Striche beteiligt sein würden. Und das Formular könnte validieren, wenn ein Benutzer nur eine Nummer oder eine Nummer und etwas Text eingegeben hat. Aber ich fange klein an. Jede Hilfe wäre großartig.Check Felder enthalten Daten und das ist eine Nummer

function validate(){ 
    if ((document.myForm.fname.value=="") || (document.myForm.lname.value=="") 
|| (document.myForm.telenumber.value=="")){ 
     alert("You must fill in all of the required fields!") 
     return false 
    } 
    else 
     return true 
} 


<form name="myForm" onsubmit="return validate()"> 
    <label for="fname">First name</label> 
    <input type="text" id="fname" name="firstname"><BR> 
    <label for="lname">Last name</label> 
    <input type="text" id="lname" name="lastname"><BR> 
    <label for="tele">Telephone number</label> 
    <input type="text" id="tele" name="telenumber"> 

    <input type='submit' value='Submit' /><br /> 
</form> 
+0

regulären Ausdruck für Telefon sein Nummer- http://www.w3resource.com/javascript/form/phone-no-validation.php –

Antwort

0

Ich würde verwenden, um die typeof Funktion zu überprüfen, ob fname und lname Strings sowie ein regulärer Ausdruck zu überprüfen, ob die Telefonnummer Format gültig ist.

Arbeitscodebeispiel:

(function(){ 
 
    
 
    function validate(e) { 
 
    
 
    e.preventDefault(); 
 

 
    var fname = document.getElementById('fname').value, 
 
     lname = document.getElementById('lname').value, 
 
     phone = document.getElementById('tele').value; 
 
     
 
    //regex example for phone number format 
 
    var regex = new RegExp('^((([0-9]{3}))|([0-9]{3}))[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4}$'); 
 
     
 
    
 
    //Validation 
 
    
 
    if(typeof fname === 'string' && typeof lname === 'string' && regex.test(phone)) 
 
     console.log('Ok. valid user data'); 
 
    else 
 
     alert('Invalid user data!'); 
 
    
 
    } 
 

 
    
 
    // Event listner for form submission 
 
    
 
    document.getElementById('myForm').addEventListener('submit', validate); 
 

 
})();
<form name="myForm"> 
 
    <label for="fname">First name</label> 
 
    <input type="text" id="fname" name="firstname"> 
 
    <label for="lname">Last name</label> 
 
    <input type="text" id="lname" name="lastname"> 
 
    <label for="tele">Telephone number</label> 
 
    <input type="text" id="tele" name="telenumber"> 
 

 
    <input type='submit' value='Submit' /> 
 
</form>

Zusätzlicher Hinweis:

ich die Formular-Steuerelemente bin Überprüfung für mehr Klarheit des Codes zu String mit typeof, aber Es ist redundant, da die Formularsteuerung immer den Typ string hat.

Also, wenn Sie die Freigabebedingung möchten, können nur if(regex.test(phone))

+0

Der Wert von a form control ist immer eine Zeichenkette, daher scheint * typeof * überflüssig zu sein. – RobG

+0

@RobG ja, es ist richtig. Ich fügte hinzu, nur für mehr Klarheit, aber es ist überflüssig. Ich bearbeite meine Antwort, um eine Notiz darüber hinzuzufügen. danke – fbid

+0

Danke. Also, da ich ein Neuling bin, gibt es keine Möglichkeit, dies zu tun, indem ich etwas an den Code angehängt habe, den ich herausgefunden und hier aufgenommen habe? – Chris

Verwandte Themen