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 -
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...
A voir également:

5 réponses

Posotaz Messages postés 505 Statut Membre 225
 
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.)
1
Jean_2 Messages postés 245 Statut Membre 12
 
je te remercie

t'as trop assuré

bye
1
Jean_2 Messages postés 245 Statut Membre 12
 
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...
0
Posotaz Messages postés 505 Statut Membre 225
 
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.
0
Jean_2 Messages postés 245 Statut Membre 12
 
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...
0
Posotaz Messages postés 505 Statut Membre 225 > Jean_2 Messages postés 245 Statut Membre
 
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.
0
Jean_2 Messages postés 245 Statut Membre 12 > Posotaz Messages postés 505 Statut Membre
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Posotaz Messages postés 505 Statut Membre 225
 
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 ;-)
0