Forum Clubic

[Javascript] Control nbre caractères avec onChang - sur de multiple input

Voilà j’ai une suite d’input dans un formulaire qui sont péparés pour insertion dans la base de données.

Je voudrais vérifier qu’ils contiennent bien 17 caractères (ou rien du tout, mais ca j’ai pas trouvé comment faire encore :D).

Donc j’ai chopé du code sur le net, et tenté de le comprendre :

<script type="text/javascript">
function minimum(champ,nbre,form)
if(champ.lenght<nbre)
{
alert("blabla")
return false;
}
return true;
}
</script>

et ensuite dans mes input :


<input onChange="return minimum(document.formulaire.Chassis<?php echo $i ?>.value,17,document.formulaire)" name="Chassis<?php echo $i ?> />

Ca me dit, quand je quitte le input, que document.formulaire.Chassis0 a la valeur NULL ou n’est pas un objet :confused:

Je capte pas trop le problème :frowning:

Si qqn a une idée, merci par avance !

Déjà s’il te dit ça c’est que tu utilise IE, c’est mal :wink:
Là ca n’a rien à voir avec la fonction Javascript, c’est juste que tu devrais vérifier que tu as bien un élément correspondant à document.formulaire.Chassis0 dans ton code HTML.

PS: utilise document.forms.formulaire.ton_element, c’est standard.

Edit: utilise plutôt le mot clé "this" et vire le troisième paramètre de ta fonction qui ne sert à rien !

onchange="return minimum(this.value, 17);"

Je me suis fait la même réflexion concernant le troisième paramètre… je voyais pas ce qu’il venait foutre là dedans :slight_smile:

Concernant IE je décide pas du navigateur à utiliser chez mon employeur. Je ne suis que stagiaire après tout. Je teste ta méthode :slight_smile: Mais oui j’ai bien un input name=“Chassis0” comme indiqué :slight_smile:

EDIT: le this c’est à la place de value ?

pour Chassis0 ca donnerait quoi alors ? (document.forms.formulaire.Chassis0.this,

ou this.value direct ?

Bon ben j’ai essayé dans tous les sens et ca marche pas… j’y comprends rien :frowning:

J’ai utilisé une autre bidouille, qui ne satisfait pas exactement à mon besoin mais offre un début de solution :

http://javascript.internet.com/forms/limit-textarea.html

En gros sur chacune de mes lignes ca affiche une petite boite qui indique combien il manque de caractères… donc l’utilisateur sait s’il en a bien tapé suffisament ou pas.

C’est pas parfait mais bon… J’aimerais mieux remplacer ca par une pastille de couleur par exemple… mais je sais pas faire :frowning:


<script type="text/javascript">
function verifChamp(champ, pastille)
{
	nbre = 17;
	if(champ.value.lenght >= nbre)
	{
  document.getElementById('pastille').style.visibility = 'visible';
	}
else
{
  document.getElementById('pastille').style.visibility = 'hidden';
}
}
</script>

<input onChange="verifChamp(this, pastille[<?php echo $i ?>])" id="Chassis[<?php echo $i ?>]" name="Chassis[<?php echo $i ?>]" /><img src="pastille.png" alt="Ok" name="pastille[<?php echo $i ?>]" id="pastille[<?php echo $i ?>]" style="visibility : hidden" />

J’ai pas testé, mais ca devrait globalement marcher.

En général ce que je fais dans mes scripts c’est juste mettre en rouge les champs qui sont mal remplis:
http://dinofly.planetemu.net/onchange.html

Simple et efficace en effet :slight_smile: Merci à vous deux !

ok ca fonctionne parfaitement, merci bien ^^ C’est pas mal javascript finalement, et la logique est relativement simple à acquérir… bon par contre faut connaitre toutes les propriétés :smiley:

Si je veux faire une validation au clic sur un bouton ca marche comment ?

EDIT: j’ai regardé le code du forum, puisqu’on a ce truc sur delete post, mais est ce que ca marche avec un formulaire et en POST ? car c’est une redirection vers URL ce truc en fait …

<input type=“submit” onclick=“return confirm(‘attention !’)” />

et si on fait annuler si se passe rien ?

EDIT : ah vouais ^^ super merci beaucoup !! Je vais devoir vous verser de mon salaire à ce rythme :smiley: Encore que vu la faiblesse du montant pour un stagiaire… ^^