Page 1 sur 5

Ecrire dans un input text via un input button

Posté : 20 oct. 2007, 22:10
par kevinf
Bonjour,

j'ai ce code :
<input type='button' value='01' name='num1'><input type='button' value='02' name='num2'><input type='button' value='03' name='num3'>
<br />
<input type='text' size='1' maxlength='2' name='checknum1'><input type='text' size='1' maxlength='2' name='checknum2'><input type='text' size='1' maxlength='2' name='checknum3'>
Et bien, je voudrais que lors des clics sur des bouton, que cela se rentre dans les input text, comment faire?

Merci

Posté : 20 oct. 2007, 23:09
par Truc
En cherchant sur le net et en proposant un truc (code) même mauvais :)

sur le bouton
onclick="setText(this)"
la fonction JS
function setText(element)
{
     document.getElementById('checknum'+element.id).value = element.value;
}

Posté : 20 oct. 2007, 23:20
par kevinf
Merci, mais comment faire sachant qu'il va avoir 10 chiffres pour 5 cases, et il faut que chaque clic aille dans une case différente (5 cases)?

Merci encore.

Posté : 20 oct. 2007, 23:36
par Truc
chiffres ?
cases ?

maj de la fonction :
function setText(element)
{
   alert("id = "+element.id+" ; value = "+element.value);     
   document.getElementById('check'+element.id).value = element.value;
}
regarde ce que ça donne sur un ensemble d'élements

Posté : 20 oct. 2007, 23:46
par kevinf
Donc, j'ai essayer, mais ca me fait une alerte, et rien dans les input texte, voici tout mon code :
function setText(element) 
{ 
   alert("id = "+element.id+" ; value = "+element.value);      
   document.getElementById('checknum'+element.id).value = element.value; 
} 

<form name='loterie'>
		 <input type='button' value='01' onclick="setText(this)"><input type='button' value='02' onclick="setText(this)"><input type='button' value='03'><input type='button' value='04'><input type='button' value='05'><input type='button' value='06'><input type='button' value='07'><input type='button' value='08'><input type='button' value='09'><input type='button' value='10'><input type='button' value='11'><input type='button' value='12'><input type='button' value='13'><input type='button' value='14'><input type='button' value='15'><input type='button' value='16'><input type='button' value='17'><input type='button' value='18'><input type='button' value='19'><input type='button' value='20'><input type='button' value='21'><input type='button' value='22'><input type='button' value='23'><input type='button' value='24'><input type='button' value='25'><input type='button' value='26'><input type='button' value='27'><input type='button' value='28'><input type='button' value='29'><input type='button' value='30'><input type='button' value='31'><input type='button' value='32'><input type='button' value='33'><input type='button' value='34'><input type='button' value='35'><input type='button' value='36'><input type='button' value='37'><input type='button' value='38'><input type='button' value='39'><input type='button' value='40'><input type='button' value='41'><input type='button' value='42'>
		 <br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum1'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum2'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum3'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum4'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum5'><br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum6'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum7'></form>
Merci

Posté : 20 oct. 2007, 23:57
par Berzemus
ca me fait une alerte
alert("id = "+element.id+" ; value = "+element.value);


Tu connais le javascript ? Il y a une alert parce qu'on a demandé une alerte. Mieux vaut lire le code et voir ce qu'il fait avant de le copier/coller.

Truc as dis de "regarder ce que ça donne sur un ensemble d'élements", alors il faut voir ce que dis l'alerte, vu qu'elle est censée contenir les données.

Posté : 21 oct. 2007, 08:40
par kevinf
Après de nombreuses recherches, je n'y arrive toujours pas, pourriez-vous m'aider?

Posté : 21 oct. 2007, 09:49
par Cyrano
kevinf, ce que tu dis n'aidera personne à t'indiquer une piste de solution. Je dirais que tu dois avoir une approche un peu plus pratique :
-1- Ne pas perdre de vue qu'on ne voit pas tout ton code ni ce que donne son exécution;
-2- Les réponses qui te sont faites sont basées sur les questions que tu poses.

Si les réponses ne correspondent pas à ce que tu as besoin de savoir, c'est peut-être que tu as posé une mauvaise question ou une question incomplète.

Et si un élément d'une réponse n'est pas clair pour toi, demande les précisions appropriées.

Je vais donc te poser une question qui sera plus utile pour orienter les réponses qui pourront t'être faites par la suite : as-tu compris comment on fait en JavaScript pour insérer du contenu dans un élément HTML ? Par exemple, en partant d'une donnée, mettons "texte quelconque", comment l'afficher dans un champ de formulaire de type "text" ? Parce que si tu n'as pas compris cette partie-là, ça va être difficile d'aller plus loin sans te noyer.

Et comprends bien qu'il est un peu sans intérêt de te filer un code tout fait que tu ne comprends pas parce que tu seras dans l'incapacité de l'adapter si ton application doit évoluer ultérieurement.

Posté : 21 oct. 2007, 09:51
par kevinf
Merci de ta réponse, mais je vais pas le cacher, le JavaScript n'est pas ma tasse de thé, mais pour ta question, il faut utliser :
getElementById

Posté : 21 oct. 2007, 10:12
par Cyrano
Ok, donc il va falloir t'indiquer comment faire avant d'aller plus loin. Ne stressse pas trop en te disant que le JavaScript est compliqué : ce n'est pas plus difficile que du PHP, mais c'est un langage différent avec un vocabulaire, une syntaxe et une grammaire différentes.

getElementById permet de pointer sur un élément, mais en aucun cas à insérer du contenu où que ce soit.

Donc, il faut décomposer ton problème global en problèmes simples et les résoudre un par un.

-1- Récupérer l'élément cible : là effectivement, on devra utiliser getElementById;
-2- Insérer le contenu : là, ça dépend de l'élément cible : soit c'est une partie texte de la page, soit c'est un champ de formulaire. Si c'est un élément de texte, on utiliser innerHTML, mais pour un champ de formulaire, on pointera sur la propriété "value" du champ.

On va commencer par insérer un contenu "en dur" dans un champ de formulaire avec de s'occuper de tes boutons. Dans un premier temps, on définit une variable avec le contenu que tu souhaites insérer :

Code : Tout sélectionner

var texte = 'texte quelconque';
Ensuite, on va créer la ressource permettant de manipuler le champ de formulaire cible. Ce champ doit être assorti d'un attribut id, exemple :

Code : Tout sélectionner

<input type="text" name="mon_champ" id="mon_champ" value="" />
Pour créer la ressource coté JavaScript, on va initialiser une variable :

Code : Tout sélectionner

var champForm = document.getElementById('mon_champ');
Voilà, tu as maintenant la base pour ajouter la valeur dans ton champ de formulaire :

Code : Tout sélectionner

champForm.value = texte;
Si tu arrives à bien assimiler cette partie, on va pouvoir aller plus loin en s'occupant de tes boutons.

Posté : 21 oct. 2007, 10:18
par kevinf
Après avoir relu ton message plusieurs fois, je pense avoir compris le principe.

Posté : 21 oct. 2007, 10:23
par Cyrano
Ok, alors reprenons du début sur ton problème : expose de quoi tu pars, où tu veux te rendre et, au vu de ce qu'on vient de voir, comment selon toi on va aboutir à la solution ?

Posté : 21 oct. 2007, 10:32
par kevinf
Donc, je réexplique,

je donne tout mon code:
<form name='loterie'>
		 <input type='button' value='01'><input type='button' value='02'><input type='button' value='03'><input type='button' value='04'><input type='button' value='05'><input type='button' value='06'><input type='button' value='07'><input type='button' value='08'><input type='button' value='09'><input type='button' value='10'><input type='button' value='11'><input type='button' value='12'><input type='button' value='13'><input type='button' value='14'><input type='button' value='15'><input type='button' value='16'><input type='button' value='17'><input type='button' value='18'><input type='button' value='19'><input type='button' value='20'><input type='button' value='21'><input type='button' value='22'><input type='button' value='23'><input type='button' value='24'><input type='button' value='25'><input type='button' value='26'><input type='button' value='27'><input type='button' value='28'><input type='button' value='29'><input type='button' value='30'><input type='button' value='31'><input type='button' value='32'><input type='button' value='33'><input type='button' value='34'><input type='button' value='35'><input type='button' value='36'><input type='button' value='37'><input type='button' value='38'><input type='button' value='39'><input type='button' value='40'><input type='button' value='41'><input type='button' value='42'>
		 <br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum1'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum2'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum3'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum4'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum5'><br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum6'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum7'></form>
Je souhaite en fait, faire un système de loterie, donc parmis les 42 chiffres sous formes d'input button, le membre devra en choisir 7 qu'il devra cliquer dessus et qui s'inscriront au fur et à mesure dans les input text en dessous. Chaque chiffre choisit, l'input button en question devient desabled.

En gros, voilà ce que je souhaite obtenir.


Et si j'ai bien compris, il va falloir utiliser getElementById pour prendre le chiffre et value pour l'inscrire dans l'input text aproprié.

Posté : 21 oct. 2007, 10:39
par Cyrano
Ok, alors regarde les champs cibles : j'ai mentionné un peu plus tôt un élément important pour pouvoir pointer dessus : il manque un attribut.

Je te laisse corriger avant de continuer ;)

Posté : 21 oct. 2007, 10:48
par kevinf
Voila , je crois que c'est ca :
<form name='loterie'>
		 <input type='button' value='01'><input type='button' value='02'><input type='button' value='03'><input type='button' value='04'><input type='button' value='05'><input type='button' value='06'><input type='button' value='07'><input type='button' value='08'><input type='button' value='09'><input type='button' value='10'><input type='button' value='11'><input type='button' value='12'><input type='button' value='13'><input type='button' value='14'><input type='button' value='15'><input type='button' value='16'><input type='button' value='17'><input type='button' value='18'><input type='button' value='19'><input type='button' value='20'><input type='button' value='21'><input type='button' value='22'><input type='button' value='23'><input type='button' value='24'><input type='button' value='25'><input type='button' value='26'><input type='button' value='27'><input type='button' value='28'><input type='button' value='29'><input type='button' value='30'><input type='button' value='31'><input type='button' value='32'><input type='button' value='33'><input type='button' value='34'><input type='button' value='35'><input type='button' value='36'><input type='button' value='37'><input type='button' value='38'><input type='button' value='39'><input type='button' value='40'><input type='button' value='41'><input type='button' value='42'>
		 <br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum1' id='checknum1'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum2' id='checknum2'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum3' id='checknum3'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum4' id='checknum4'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum5' id='checknum5'><br />
		 <input type='text' size='1' maxlength='2' readonly='readonly' name='checknum6' id='checknum6'><input type='text' size='1' maxlength='2' readonly='readonly' name='checknum7' id='checknum7'></form>