Si textarea vide, ne pas envoyer le form...
Résolu
Jean_2
Messages postés
245
Statut
Membre
-
Jean_2 Messages postés 245 Statut Membre -
Jean_2 Messages postés 245 Statut Membre -
Bonjour à tous,
J'ai un ptit problème sur un formulaire :
J'ai fait une fonction validation pour envoyer un formulaire que si tous les champs sont remplis :
function validation()
{
if(document.formulaire.pseudo.value == "")
{
alert ('veuillez entrer votre pseudo');
document.formulaire.pseudo.focus();
return false;
}
if(document.formulaire.ville.value == "")
{
alert ('veuillez entrer un nom de ville');
document.formulaire.ville.focus();
return false;
}
if(document.formulaire.commentaire.contenu == "")
{
alert ('veuillez entrer un commentaire ');
document.formulaire.contenu.focus();
return false;
}
else {return true;}
}
Cette fonction fonctionne (belle redondance), sauf pour la dernière condition.
Précision : contenu est un textearea :
<textarea name="contenu" cols="70" id="contenu"></textarea>
C'est pour celà ? Ya quelque chose qui vous parait anormal ?
Merci de votre aide...
J'ai un ptit problème sur un formulaire :
J'ai fait une fonction validation pour envoyer un formulaire que si tous les champs sont remplis :
function validation()
{
if(document.formulaire.pseudo.value == "")
{
alert ('veuillez entrer votre pseudo');
document.formulaire.pseudo.focus();
return false;
}
if(document.formulaire.ville.value == "")
{
alert ('veuillez entrer un nom de ville');
document.formulaire.ville.focus();
return false;
}
if(document.formulaire.commentaire.contenu == "")
{
alert ('veuillez entrer un commentaire ');
document.formulaire.contenu.focus();
return false;
}
else {return true;}
}
Cette fonction fonctionne (belle redondance), sauf pour la dernière condition.
Précision : contenu est un textearea :
<textarea name="contenu" cols="70" id="contenu"></textarea>
C'est pour celà ? Ya quelque chose qui vous parait anormal ?
Merci de votre aide...
Configuration: Windows XP Firefox 2.0.0.7
5 réponses
-
Salut Jean,
Contrairement aux champs input qui fonctionnent avec l'attribut value, les textarea prennent en compte le texte à l'intérieur des balises fermante et ouvrante. Essaie :document.formulaire.commentaire.contenu.innerHTML
Sans la propriété innerHTML c'est l'objet textarea lui-même que tu compares à une chaîne de caractères vide.
(ERRATUM : Voir plus bas.) -
-
En fait le script marchait, j'avais juste une tite erreur de frappe :
il fallait mettre if(document.formulaire.contenu.value == "")
à la place de if(document.formulaire.commentaire.contenu == "")
PS : PB sur ton script, il ne fonctionne pas, il affiche la box que le texarea soit rempli ou pas... -
C'est juste, dans la mesure où le textarea est une balise dynamique, l'objet utilise lui aussi la propriété value pour accéder à la valeur... ça reste un champ de formulaire fidèle. Merci à toi.
-
par contre je viens de m'apercevoir d'un autre pb sur ce formulaire : j'ai fait des boutons d'option pour donner une note
dans ma fonction :
if(document.formulaire.note.value == "")
{
alert ('veuillez donner une note');
document.formulaire.note.focus();
return false;
}
dans mon formulaire :
<input type="radio" name="note" value="0" /> 0
<input type="radio" name="note" value="1" /> 1
<input type="radio" name="note" value="2" /> 2
et là, je comprend pas, car ça m'affiche pas la box quand je n'ai pas choisi...- Re salut, en effet là c'est différent parce que document.formulaire.note te renvoie un tableau de "radio".
J'ai peut-être une solution pour toi :var notes = document.formulaire.note; var i=0; while(i<notes.length && notes[i].checked==false) { i++ ; } if(i>=notes.length) { alert("veuillez donner une note"); return false; }Là on parcourt toutes les radio une à une jusqu'à ce qu'on en ait trouvée une de cochée ou qu'on les a toutes parcourues. Si on les a toutes parcourues sans n'avoir rien trouvé on affiche le message et on donne le feu rouge. - merci pour ce code mais 2 questions me taraudent (dsl pour l'orthographe) :
1/ que signifie && (la différence avec &). Java, je connais trop pas...
2/ Pour appeler cette fonction, je dois la faire onSubmit, or j'y appelle déjà une fonction.
onSubmit="return validation();"
Pour appeler la 2eme, je fais comment ?Quelle syntaxe ? Appele là comme tu veux...
Merci merci tu m'aides trop car ce formulaire commence à me faire |% lol
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Pour la signification des opérateurs je te renvoie ici : javaop (ce sont les opérateurs Java, pas Javascript mais la majorité se ressemblent)
Tu as lu mon message au moment où j'avais mis ce code dans une fonction ? Oublie, c'était pour mes besoins personnels à des fins de test, tu n'as qu'à prendre tout le code et le placer à la suite de tes if dans ta fonction validation().function validation() { if(document.formulaire.pseudo.value == "") { alert ('veuillez entrer votre pseudo'); document.formulaire.pseudo.focus(); return false; } if(document.formulaire.ville.value == "") { alert ('veuillez entrer un nom de ville'); document.formulaire.ville.focus(); return false; } if(document.formulaire.contenu.value == "") { alert ('veuillez entrer un commentaire '); document.formulaire.contenu.focus(); return false; } var notes = document.formulaire.note; var i=0; while(i<notes.length && notes[i].checked==false) { i++ ; } if(i>=notes.length) { alert("veuillez donner une note"); return false; } return true; // On ne lance cette instruction que si on n'est entré dans aucune condition plus haut. L'appel à "return" provoque la sortie de la fonction. }Ben je t'emprie ;-)