Créer un input type Button avec une onClick !

Résolu
hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009 - 20 mai 2008 à 15:11
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 24 mai 2008 à 15:12
Bonjour à tous,
voila j'essai de créer un bouton input de tupe button qui declanche une autre fonction.
étant impribré dans un formulaire dynamique je doit gérer une incrémentation :

mon problème se pose sur : newButton.onClick='fAddText('.$i.')';  
car je doit créer un boutton adapter au reste de mon code php.

code de ma fonction :

function fAddReste(nb_ques) //Ajout de zone text increment (nb_ques = $i)
{
var newButton= document.createElement("input");
newButton.type='button';
newButton.value='+';
newButton.onClick='fAddText('.$i.')';         <== Normalement, ici le code php est :
                                                                          echo '

var newInput= document.createElement("input");
newInput.type='text';
newInput.value='rep_'+nb_ques+'_1'; //permet de visualiser le rsultat
newInput.name='rep_'+nb_ques+'_1';
newInput.id='rep_'+nb_ques+'_1';

document.getElementById('choix_'+nb_ques).appendChild(document.createElement("br"));
document.getElementById('choix_'+nb_ques).appendChild(newButton);
document.getElementById('choix_'+nb_ques).appendChild(document.createElement("br"));
document.getElementById('choix_'+nb_ques).appendChild(document.createTextNode('Réponse 1 : '));
document.getElementById('choix_'+nb_ques).appendChild(newInput);
}

Mon bouttone st bien créer mais pas de fonction associer au onClick.

cela doit être simple, mais étant un nb en javascript je galère,
Merci

5 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
20 mai 2008 à 15:32
Bonjour,

   très loin d'être sûr que les relations php <==> javascript
         soient faites de manière correcte... mais si on suppose que oui,
         alors :

newButton.onclick=function() { fAddText('<?php echo $i;?>'); }

<hr />
                Cordialement            Bul         [mon Site]     [M'écrire]
3
hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009
20 mai 2008 à 19:28
Merci, sa marche nikel !

j'ai juste mis directement la valeur de $i avec :

function fAddText2(nb_ques) //Ajout de zone text increment
{
var newButton= document.createElement("input");
newButton.type='button';
newButton.value='+';
newButton.onclick = function() { fAddText(nb_ques); }

Bref sa tue
3
hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009
24 mai 2008 à 15:09
C'est bon  j'ai trouvé :)

la solution : newInput.onfocus = function() { this.value=''; }

comme quoi ca rigole pas avec les majuscule en JS ^^
3
hAdEsS Messages postés 41 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 30 mai 2009
24 mai 2008 à 15:02
Dans le même style de création de input avec appendChild,
j'aiemerait créer un champ texte avec un value par defaut et surtout un onFocus pour supprimé le texte defaut au click

je pensais à :

function fAddText(nb_ques) //Ajout de zone text increment
{
var cmp = new String(GetQues(nb_ques));    //recuperation du nom dans une variable string
var newInput= document.createElement("input");
newInput.type='text';
newInput.value='rep_'+nb_ques+'_'+cmp; //permet de visualiser le rsultat
newInput.name='rep_'+nb_ques+'_'+cmp;
newInput.id='rep_'+nb_ques+'_'+cmp;
newInput.onFocus = function() { this.value=''; }

document.getElementById('choix_'+nb_ques).appendChild(document.createElement("br"));
document.getElementById('choix_'+nb_ques).appendChild(document.createTextNode('Réponse '+cmp+' : '));
document.getElementById('choix_'+nb_ques).appendChild(newInput);
}

je me base sur le code html trouvé sur le net et je pense que mon approche de la function n'est pas la bonne.
Merci de m'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
24 mai 2008 à 15:12
c'est plutôt qu'on ne peut ajouter un évênement, comme tu veux le faire,
        que lorsque l'appendChild est fait. sinon l'élément n'existe pas encore.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0