Form qui marche pas

Résolu/Fermé
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 17 juil. 2014 à 12:08
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 - 17 juil. 2014 à 15:31
Salut ;-)

Voilà je bosse sur une page web et j'ai un truc qui marche pas...
Je fais un formulaire pour différencier les utilisateurs mais mon traitement marche pas.

<!doctype html>
<head>
	<meta charset="utf-8">
	<SCRIPT language="javascript">

	function select_user(form_user)
	{

		if (form_user.choix_user[admin].checked)
		{
			alert("Vous avez choisi la proposition " + form_user.choix[admin].value)
		};

		if (form_user.choix_user[secretaire].checked) 
		{
			alert("Vous avez choisi la proposition " + form_user.choix[secretaire].value)
		};
	
		if (form_user.choix_user[autre].checked)
		{
			alert("Vous avez choisi la proposition " + form_user.choix[autre].value)
		};
	}
	</SCRIPT>

	<title>Accueil</title>
</head>
<body>
	<h1>Quel utilisateur êtes vous ?</h1>

	<FORM NAME="form_user">
		<INPUT TYPE="radio" NAME="choix_user" VALUE="admin">Administrateur<BR>
		<INPUT TYPE="radio" NAME="choix_user" VALUE="secretaire">Secrétaire<BR>
		<INPUT TYPE="radio" NAME="choix_user" VALUE="autre">autre<BR>
		<br/>
		<INPUT TYPE="button"NAME="but" VALUE="Quel et votre choix ?" onClick="select_user(form_user)">
	</FORM>

</body>
</html> 


(Pour l'exemple j'ai remplacé le traitement par des "alert" mon but c'est de faire des cookies à terme)

J'ai mis un alert("banana") dans ma fonction j'y passe bien... doit y avoir un souci dans mes conditions ou alors une faute de frappe...

Merci de votre aide !

4 réponses

dan-b Messages postés 80 Date d'inscription samedi 15 septembre 2012 Statut Membre Dernière intervention 20 octobre 2014 7
Modifié par dan-b le 17/07/2014 à 14:07
bonjour,

form_user.choix_user est une nodelist. Donc autant la parcourir comme une liste et voir quel élément est sélectionné.


<!doctype html>
<head>
 <meta charset="utf-8">
 <SCRIPT>

 function select_user(form_user){
  for (var i=0, len = form_user.choix_user.length; i< len; ++i){
   if (form_user.choix_user[i].checked){
    alert("Vous avez choisi la proposition " + form_user.choix_user[i].value);
    break;
   } 
  }
 }
 </SCRIPT>

 <title>Accueil</title>
</head>
<body>
 <h1>Quel utilisateur êtes vous ?</h1>

 <FORM NAME="form_user">
  <INPUT TYPE="radio" NAME="choix_user" VALUE="admin">Administrateur<BR>
  <INPUT TYPE="radio" NAME="choix_user" VALUE="secretaire">Secrétaire<BR>
  <INPUT TYPE="radio" NAME="choix_user" VALUE="autre">autre<BR>
  <br/>
  <INPUT TYPE="button" NAME="but" VALUE="Quel et votre choix ?" onClick="select_user(form_user)">
 </FORM>

</body>
</html>
1
Bonjour

Il n' a pas de form_user.choix_user[admin], form_user.choix_user[secretaire], etc, mais il y a form_user.choix_user dont la valeur est 'admin', 'secretaire, etc...
Il vaut mieux ré-écrire ton code avec un switch sur form_user.choix_user.value.
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 334
17 juil. 2014 à 14:52
ça marche avec la solution de dan =)
En plus maintenant que je l'ai sous les yeux, ça parait évident j'ai pas été très malin -_-

merci à vous deux pour vos réponses !
0
Utilisateur anonyme
17 juil. 2014 à 15:26
Ça marche aussi avec la mienne, et c'est bien plus simple.

function select_user(form_user)
  {
    alert("Vous avez choisi la proposition " + form_user.choix_user.value);
  }
0
Lapourax Messages postés 3006 Date d'inscription vendredi 15 mars 2013 Statut Contributeur Dernière intervention 17 février 2023 334
17 juil. 2014 à 15:31
C'est vrai je viens de voir que j'avais fait de la daube en copiant ta solution -_-
La vache faut que je me réveille

Encore merci =)
0