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   -
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 489 Date d'inscription   Statut Membre Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention   12
 
je te remercie

t'as trop assuré

bye
1
Jean_2 Messages postés 245 Date d'inscription   Statut Membre Dernière intervention   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 489 Date d'inscription   Statut Membre Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention   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 489 Date d'inscription   Statut Membre Dernière intervention   225 > Jean_2 Messages postés 245 Date d'inscription   Statut Membre Dernière intervention  
 
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 Date d'inscription   Statut Membre Dernière intervention   12 > Posotaz Messages postés 489 Date d'inscription   Statut Membre Dernière intervention  
 
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 489 Date d'inscription   Statut Membre Dernière intervention   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