J'exécute certaines fonctions pour vérifier que le texte saisi par l'utilisateur dans un formulaire contient au moins un chiffre et une lettre. Cela ne semble pas fonctionner. Étant donné que les deux fonctions sont presque identiques, je vais poster un d'entre eux:La validation 'Check for Letter' ne fonctionne pas
function hasALetter(textField){
//returns true or false based on whether or not the text field has at least one letter inside it
console.log("Checking for letters...");
var hasLetter = false;
for(var i=0, checkLength=textField.length; i<checkLength; i++){
var letter = textField.substr(i,1);
console.log("letter = " + letter);
if(isNan(letter) == false){
hasLetter = false;
}
}
if(hasLetter == true){
return true;
}
}
Le journal (« lettre = » + lettre) montre jamais dans ma console. Il me manque probablement quelque chose de stupide, mais cela ne semble pas aller jusqu'au bout de la fonction.
Pour référence, voici comment j'appelle les fonctions:
if(pwd.value.length > 9){
var pwdLetter = hasALetter(pwd);
var pwdNumber = hasADigit(pwd);
if(pwdLetter==true){
if(pwdNumber==true){
Oui, je suis conscient qu'il est très salissant, mais je suis encore à apprendre. Je suis sûr qu'il y a des façons plus avancées/plus propres de faire cette validation, mais pour les besoins de ma scolarité, je le fais comme ça pour l'instant.
OMG, que se passe-t-il ici? 1) Obtenir un seul caractère avec 'substr' 2) isNa * N * 3) if (true) return vrai sinon return false est inutile 4) log après l'instruction return. Cela peut être fait beaucoup de * * mieux ... – Harmen
@Harmen> Je suis sûr qu'il peut, mais depuis que je suis toujours dans ma première classe Javascript de mon programme collégial, « substr » est ce que le prof nous a donné au travail avec. En outre, je pensais que j'avais retiré les déclarations «retour faux». : P – GnomeSlice
@GnomeSlice: textField.charAt (i) renvoie une lettre à cette position; 'return hasLetter' devrait être meilleur, pas de condition statement;) ... – Maxym