Forums Développement Multimédia

Aller au contenu

variables avec nom dynamique

javascript variables CODE Ajax JQuery EaseJs

10 réponses à ce sujet

#1 pierreflash

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 117 messages

Posté 18 June 2013 - 16:53 PM

bonjour voila mon probleme:
j ai un index.html ou je rentre valeur variable pour un javascript

  <input type="text " name="couleurcarre1"  value='#ff0000'>
   
                 <input type="text " name="couleurcarre2"  value='#00ff00'>
           
                  <input type="text " name="couleurcarre3"  value='#0000ff'>
       
                   <input type="text " name="couleurcarre4"  value='#0000ff'>
       
                 
 

pour recuperer valeur dans mon js je fait :

var couleurcarre1 =  document.forms['montexte'].couleurcarre1.value;
 

j aimerais le faire avec une boucle :

for(var i=1; i<5; i++){


couleurcarre='couleurcarre'+i;
'couleurcarre'+i;=document.forms['montexte'].couleurcarre.value;

};
};
 
mais ca marche pas
j ai essaye aussi
macouleurcarre=document.forms['montexte'].window['couleurcarre'+i].value;
et aussi
macouleurcarre=document.forms['montexte'].eval('couleurcarre'+i).value;

y a t il une manière de faire?
merci d'avance pour vos réponses

#2 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1746 messages

Posté 18 June 2013 - 17:25 PM

regarde du côté de eval()

#3 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6995 messages

Posté 18 June 2013 - 17:28 PM

Sinon tu peux aussi passer directement par les éléments du formulaire :


HTML :
<FORM name="couleurs">
<input type="text " name=""  value='#ff0000'>
<input type="text " name=""  value='#00ff00'>
<input type="text " name=""  value='#0000ff'>
<input type="text " name=""  value='#0000ff'>
</FORM>

JS :
$(document).ready(
        function(){
                for(var i=0; i<4; i++){
                        var couleurcarre =  document.forms['couleurs'].elements[i].value;
                        alert(couleurcarre);
                }
        }
);


#4 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1746 messages

Posté 18 June 2013 - 17:31 PM

essaye avec

eval('couleurcarre'+i)=document.forms['montexte'].getElementsByName('couleurcarre'+i).value;
 


#5 pierreflash

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 117 messages

Posté 18 June 2013 - 17:52 PM

Voir le messagepol2095, le 18 June 2013 - 17:31 PM, dit :

essaye avec

eval('couleurcarre'+i)=document.forms['montexte'].getElementsByName('couleurcarre'+i).value;
 

ca ne marche pas
si je fais alert(document.forms['montexte'].getElementsByName('couleurcarre'+i).value); il ne se passe rien

#6 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1746 messages

Posté 18 June 2013 - 17:55 PM

ou

eval('couleurcarre'+i)=document.getElementById('couleurcarre'+i).value;
 
et

<input type="text " name="couleurcarre1"  id="couleurcarre1"  value='#ff0000'>
 


#7 pierreflash

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 117 messages

Posté 18 June 2013 - 18:56 PM

Voir le messageMonsieur Spi, le 18 June 2013 - 17:28 PM, dit :

Sinon tu peux aussi passer directement par les éléments du formulaire :


HTML :
<FORM name="couleurs">
<input type="text " name=""  value='#ff0000'>
<input type="text " name=""  value='#00ff00'>
<input type="text " name=""  value='#0000ff'>
<input type="text " name=""  value='#0000ff'>
</FORM>

JS :
$(document).ready(
        function(){
                for(var i=0; i<4; i++){
                        var couleurcarre =  document.forms['couleurs'].elements[i].value;
                        alert(couleurcarre);
                }
        }
);

avec cette méthode et


window['couleurcarre'+i ]=  document.forms['couleurs'].elements[i-1].value;
 
ca fonctionne

#8 pierreflash

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 117 messages

Posté 18 June 2013 - 18:56 PM

Voir le messagepol2095, le 18 June 2013 - 17:55 PM, dit :

ou

eval('couleurcarre'+i)=document.getElementById('couleurcarre'+i).value;
 
et

<input type="text " name="couleurcarre1"  id="couleurcarre1"  value='#ff0000'>
 

ai essayé ca ne fonctionne pas

#9 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6995 messages

Posté 18 June 2013 - 20:06 PM

Je n'avais pas capté que tu voulais aussi des variables dynamiques dans ta fonction et pas juste pour récupérer la valeur des champs.
Dans ce cas pourquoi ne pas plutôt passer par un tableau pour stocker les valeurs, ce ne serait pas plus simple d'appeler juste l'index du tableau souhaité ?

function(){
       
                var couleurs = [];
               
                for(var i=0; i<4; i++){
                        couleurs.push(document.forms['couleurs'].elements[i].value);
                }
               
                alert(couleurs);
        }


#10 pierreflash

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 117 messages

Posté 19 June 2013 - 06:44 AM

oui effectivement je vais utiliser un tableau pour cette variable c est plus éléguant

merci pour vos réponses

#11 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2531 messages

Posté 21 June 2013 - 17:21 PM

Salut,

Juste pour le fun


<form action="" id="my-form">
  <input type="text " name="couleurcarre1"  value='#ff0000'>
  <input type="text " name="couleurcarre2"  value='#00ff00'>             
  <input type="text " name="couleurcarre3"  value='#0000ff'>
  <input type="text " name="couleurcarre4"  value='#0000ff'>
</form>

<script>
  (function(){
   var arr = document.querySelector('#my-form').querySelectorAll('input');
   for(var iter=0, len = arr.length; iter<len; iter++){
    console.log(arr[iter].value);
   }
  }());
</script>
 

"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP