Page 1 sur 1

applel liste déroulante

Posté : 10 déc. 2007, 15:35
par Invité
Bonjour,

J'ai un formulaire name ="adminForm";
J'ai un champ texte name ="firstname";

J'arrive à atteindre le champ txt avec js en faisant:
var prenom = document.adminForm.firstname;
alert(prenom.name);
Par contre ça ne marche pas avec une liste déroulante name="situation[]" comme ceci:
<select name="situation[]">
	<option value=""> </option>
	<option value="Etudiant">Etudiant</option>
	<option value="En recherche d'emploi">En recherche d'emploi</option>
	<option value="En activité">En activité</option>
</select>
Et l'appel javascript pour afficher le nom de l'élément:
var sit = document.adminForm.situation;
alert(sit.name);
Comment réussir l'appel quand le nom d'une liste déroulante est un tableau?

Posté : 10 déc. 2007, 15:51
par Invité
j'ai aussi tenté

var sit = document.adminForm.situation[];
alert(sit.name);

Les deux essais me renvoient situation has no properties.

Posté : 10 déc. 2007, 16:17
par Invité
remarque:
ça aurait été plus simple si le nom de mon select n'avait pas de [] ou si j'utilisais un id pour désigner ma liste.

Le problème est que je suis dans un cms assez compliqué et je ne peux pas envisager de modifier le code qui génère cette liste.
Je suis donc obligé de passer par javascript pour atteindre l'élément, mais comment?

Posté : 10 déc. 2007, 16:28
par h0_noMan
Essayes comme ceci :
var sit = document.forms["nom_du_form"].elements["situation[]"] ;

Posté : 10 déc. 2007, 16:33
par Berzemus
euh, tu veux continuer de parler tout seul, ou on peut intervenir ? :lol:

(sinon, enregistre-toi, ça t'éviteras de reposter à chaque fois, et te permettra d'éditer ton message).

Quel situation peut avoir causé la décision de nommer un formulaire "situation[]" ?

Ce ne sont pas les brackets qui vont transformer le bazar en tableau..

Posté : 10 déc. 2007, 17:20
par Invité
tout d'abord merci de vos réponses.

Berzemus, je suis dans joomla et les composants avec lesquels je travaille sont complexes, notamment community builder qui me pose un pb ici.
Je n'en suis pas à me demander pourquoi les développeurs on fait ça (au passage, c des grosses têtes quand même).Je me contente de constater qu'ils utilisent des [] dans les noms, et j'essaye de m'adapter.

h0_noMan, ta suggesion renvoie undefined.

Posté : 10 déc. 2007, 17:49
par Berzemus
Autre solution tu regarde combien ton formulaire à d'éléments (disons que ton select est le 2ème élément), et puis tu fais quelque chôse comme ceci:

Code : Tout sélectionner

var sit = document.forms["nom_du_form"].elements[1] ;
ça devrait faire quelque chôse..

Posté : 10 déc. 2007, 17:52
par h0_noMan
J'ai teste ceci et cela fonctionne :
var index = document.forms["test"].elements["situation[]"].selectedIndex ;
var valeur = document.forms["test"].elements["situation[]"].options[index].value ;
alert("situation["+index+"] = "+valeur);