2009-04-16 7 views
0

J'utilise la validation de formulaire javascript pour le formulaire d'inscription à un concours que je cours. C'est CSS en ligne, donc si certaines conditions ne sont pas remplies, il affiche, en rouge, les messages qui disent "s'il vous plaît entrer votre adresse e-mail" ou "qui ne ressemble pas à une adresse email valide" etc .. , qui se trouve en haut du fichier, ressemble à ceci:javascript validation du formulaire sur le serveur/local

<script> 

    function checkForm() { 
name = document.getElementById("name").value; 
email = document.getElementById("email").value; 
terms = document.getElementById("terms").value; 


    if (name == "") { 
    hideAllErrors(); 
document.getElementById("nameError").style.display = "inline"; 
document.getElementById("name").select(); 
document.getElementById("name").focus(); 
    return false; 
    } else if (email == "") { 
hideAllErrors(); 
document.getElementById("emailError").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!check_email(document.getElementById("email").value)) { 
hideAllErrors(); 
document.getElementById("emailError2").style.display = "inline"; 
document.getElementById("email").select(); 
document.getElementById("email").focus(); 
    return false; 
    } 

else if (!document.form1.terms.checked){ 
hideAllErrors(); 
document.getElementById("termsError").style.display = "inline"; 
document.getElementById("terms").select(); 
document.getElementById("terms").focus(); 
    return false; 
    } 

    return true; 
    } 

function check_email(e) { 
ok = "1234567890qwertyuiop[][email protected]_QWERTYUIOPASDFGHJKLZXCVBNM"; 

for(i=0; i < e.length ;i++){ 
if(ok.indexOf(e.charAt(i))<0){ 
return (false); 
} 
} 

if (document.images) { 
re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/; 
re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
if (!e.match(re) && e.match(re_two)) { 
return (-1);   
} 

} 

} 
function hideAllErrors() { 
document.getElementById("nameError").style.display = "none" 
document.getElementById("emailError").style.display = "none" 
document.getElementById("commentError").style.display = "none" 
document.getElementById("termsError").style.display = "none" 

    } 

l'email et le travail de validation de nom très bien, la partie du formulaire qui ne fonctionnera pas ressemble à ceci:

<form onSubmit="return checkForm();" method="get" action="sweepstakes-results.php" 
<input type=checkbox name=terms id=terms ><br></p> 
<div class=error id=termsError>Required: Please check the checkbox<br></div> 
<p><input type=submit value=Send style="margin-left: 50px"> </p> 
</form> 

La case à cocher "termes et conditions" ne fonctionne que si le fichier se trouve sur mon ordinateur local, lorsque je le télécharge, Permettez-moi de soumettre le formulaire même s'il n'est pas vérifié. Le javascript n'est-il pas exécuté sur le navigateur? Comment l'emplacement du fichier peut-il faire la différence?

Répondre

0

Votre formulaire ne porte pas de nom, de sorte que le code suivant ne fonctionnera pas:

else if (!document.form1.terms.checked){ 

Puisque vous récupérez déjà l'objet DOM de la caisse, procédez comme suit. Modifiez la ligne:

terms = document.getElementById("terms").value; 

à:

terms = document.getElementById("terms"); 

Et le remplacer que d'autre si le code avec:

else if (!terms.checked){ 
+0

Vous aviez raison! J'ai fait comme tu l'as dit mais il y a un nouveau problème. Maintenant, je ne peux pas passer la validation. Peu importe ce qu'il renvoie faux même si je coche la case. –

+0

Aussi quand je fais ce changement, il ne fonctionne plus quand il est local. –

+0

désolé à ce sujet - J'ai eu une erreur de code –

Questions connexes