Si textarea vide, ne pas envoyer le form...
Résolu
Jean_2
Messages postés
245
Date d'inscription
Statut
Membre
Dernière intervention
-
Jean_2 Messages postés 245 Date d'inscription Statut Membre Dernière intervention -
Jean_2 Messages postés 245 Date d'inscription Statut Membre Dernière intervention -
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...
A voir également:
- Si textarea vide, ne pas envoyer le form...
- Supprimer page word vide - Guide
- Caractere vide - Guide
- Coeur vide ✓ - Forum Réseaux sociaux
- Raccourci coeur blanc - Forum Facebook
- Google form sans compte google ✓ - Forum Google Docs
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 :
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.)
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...
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...
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 :
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
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().
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 ;-)