2012-06-07 6 views
0

J'ai donc ce html:javascript validation du formulaire ne fonctionne pas et ne peut pas pourquoi nageoire

<form action="insert.php" method="post" onsubmit="return validateForm(this)"> 
<label for="FUP start date">FUP start date:</label> 
<input type="text" name="inputField" id="inputField"/> 
</br> 
</br> 
<label for="FUP end date">FUP end date:&nbsp;</label> 
<input type="text" name="inputField2" id="inputField2" /> 
</br> 
</br> 
<label for="Allowed traffic">Allowed traffic:</label> 
<input type="text" name="Allowed_traffic" id="Allowed_traffic"/> 
</br> 
</br> 
<label for="Frequency">Frequency:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> 
<input type="text" name="Frequency" id="Frequency" /> 
</br> 
</br> 
<input type="submit" value="submit"> 
</form> 

Ce javascript pour mot de passe (Parola):

<script> 
function validateForm(formElement) { 
    if (formElement.Allowed_traffic.length < 5) { 
    alert('aaaPlease enter a password that is at least 5 characters long'); 
    return false; 
} 
if (formElement.Allowed_traffic.length > 10) { 
    alert('Please enter a password that is less than 10 characters long'); 
    return false; 
} 
} 

</script> 

Qu'est-ce que je fais mal? Je veux vérifier sur soumettre que le mot de passe a entre 5 et 10 caractères. Merci!

Répondre

1

Remplacer .length par .value.length.

+0

Techniquement ce n'est pas nécessaire, comme la soumission du formulaire est annulée que si la valeur de retour est exactement faux, et/ou la méthode 'preventDefault' de l'objet événement est appelé. Ne pas renvoyer de valeur (en retournant 'undefined') permet à la soumission de continuer. –

+0

Merci à tous! Ça marche! –

+0

Pas de problème; heureux d'aider! –

0

Vous regardez actuellement la propriété length de l'élément <input> elle-même (qui n'existe probablement pas). Ce que vous voulez être regarder est la propriété lengthde la valeur de l'élément<input>, donc procédez comme suit:

if (formElement.Allowed_traffic.value.length < 5) { 
    alert('aaaPlease enter a password that is at least 5 characters long'); 
    return false; 
} 
else if (formElement.Allowed_traffic.value.length > 10) { 
    alert('Please enter a password that is less than 10 characters long'); 
    return false; 
} 

Notez que je l'ai changé pour un if ... else if parce que si la première condition est vraie alors le second ne peut pas être.

0

Essayez d'utiliser

var Allowed_traffic = document.getElementById("Allowed_traffic"); 

au lieu de

formElement.Allowed_traffic 
+0

Ce n'est pas vraiment nécessaire, car ce dernier fonctionne toujours. Le problème était avec l'utilisation de '.length' au lieu de' .value.length'. –

+0

Oui, vous avez raison, mais je suppose 'document.getElementById (" Allowed_traffic ");' est plus fiable sur cross browser que sur 'formElement.Allowed_traffic' – yogi

+0

C'est vrai, et moi aussi je préférerais le premier sur la seconde pour cette raison , même si c'est plus bavard. –

Questions connexes