2010-12-06 7 views
0

Je valide l'adresse e-mail d'un utilisateur. Mais le problème est apparu lorsque j'appelle cette fonction et le formulaire est soumis sans valider l'adresse e-mail. S'il vous plaît dites-moi ce qui ne va pas avec ce code.Email Validation Problème

function validateEmail(fld) { 
var error=""; 
var tfld = trim(fld.value);     
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
if (fld.value == "") { 
    fld.style.background = 'Pink'; 
    error = "You didn't enter an email address.\n"; 
} else if (!emailFilter.test(tfld)) {   
    fld.style.background = 'Pink'; 
    error = "Please enter a valid email address.\n"; 
} else if (fld.value.match(illegalChars)) { 
    fld.style.background = 'Pink'; 
    error = "The email address contains illegal characters.\n"; 
} else { 
    fld.style.background = 'White'; 
} 
return error; } 
+5

S'il vous plaît dire * moi * (et tout le monde) quel était le problème (c'est-à-dire quel message d'erreur vous avez eu, ou quelle sortie vous attendiez et comment la sortie réelle était différente). En particulier, si le formulaire est soumis sans validation, votre problème réside certainement dans la * forme * et non dans cette fonction, à moins d'avoir mal compris? –

+0

si je laisse le champ vide, alors il dit "Vous n'avez pas entré une adresse e-mail" mais quand j'ai saisi des caractères illégaux, cela n'a pas fonctionné. – Adeel

Répondre

0

toujours retourner vrai ou faux: -

function validateEmail(fld) { 
    var error=""; 
    var tfld = trim(fld.value);     
    var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
    if (fld.value == "") { 
     fld.style.background = 'Pink'; 
     error = "You didn't enter an email address.\n"; 
    } else if (!emailFilter.test(tfld)) {   
     fld.style.background = 'Pink'; 
     error = "Please enter a valid email address.\n"; 
    } else if (fld.value.match(illegalChars)) { 
     fld.style.background = 'Pink'; 
     error = "The email address contains illegal characters.\n"; 
    } else { 
     fld.style.background = 'White'; 
    } 
    if (error == '') 
    { 
     return true; 
    } 
    else 
    { 
     alert(error); 
     return false; 
    } 

}

Appelez votre fonction comme ceci: -

<input type="submit" onsubmit="return validateEmail(email.val)"> 
+1

Et effectuez toujours la validation finale côté serveur. Ne comptez pas sur les utilisateurs ayant JavaScript activé! (Et ne comptez pas sur les utilisateurs utilisant réellement votre code HTML pour envoyer les données, soit ...) –

0
function validateEmail(fld) { 
var error=""; 
var tfld = trim(fld.value);     
var emailFilter = /^[^@][email protected][^@.]+\.[^@]*\w\w$/ ; 
var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ; 
if (fld.value == "" || fld.value.length == 0) { 
    fld.style.background = 'Pink'; 
    error = "You didn't enter an email address.\n"; 
} else if (!emailFilter.test(tfld)) {   
    fld.style.background = 'Pink'; 
    error = "Please enter a valid email address.\n"; 
} else if (fld.value.match(illegalChars)) { 
    fld.style.background = 'Pink'; 
    error = "The email address contains illegal characters.\n"; 
} else { 
    fld.style.background = 'White'; 
} 
return error; } 

essayer!