Probleme Script Ajout Zones de texte

[Résolu]
Signaler
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012
-
Bonjour,
Je veux que lorsque un user clique sur le signe " + " une nouvelle zone de texte s'affiche.

J'ai fait un script, mais il ne m'affiche qu'une seule zone !, et moi je veux 10 !?.
je vous copie le code aussi pour m'aider, j'ai utilisé un tableau de 10 elements, mais ... ? à vous de me dire oû se localise l'erreure, et merci d avance

<html>
<head>
<title>ICWS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" language="JavaScript">
var TabOnglet=new Array(10);
  var i=0;
 
function AfficheOnglet(){
   //-- on affiche la nouvelle zone

 TabOnglet[i] = document.getElementById('Onglet');
  if( TabOnglet[i]){
    with( TabOnglet[i].style){
      position="absolute";
      display="";
  i++;
    }
    TabOnglet[i].focus();
  }
}

</script>
</head>







</html>

4 réponses

Messages postés
224
Date d'inscription
lundi 19 décembre 2005
Statut
Membre
Dernière intervention
6 juin 2007
3
Salut

Il faut que tu saches que plusieurs éléments ne doivent pas avoir le meme id sur une meme page...
Puis chose inutile que d'utiliser un tableau... enfin je te donne une solution compatible pour tous les navigateurs car ton code ne fonctionnait pas du tout sous firefox (meme pas une input d'affichée)

Voila le code a toi de comprendre les erreurs et pose des questions si jamais tu ne comprends pas trop... mais bon c'est très simple

ps : je ne sais pas trop comment tu voulais les afficher ( a la suite sur le meme ligne ou alor l'une sous l'autre )
      donc si tu veux les afficher l'une sous l'autre alors change tous les " display:inline; " par " display:block; "

Voila le code :

<html>
   <head>
   <title>ICWS</title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <script type="text/javascript">
      function AfficheOnglet(){
          var maxInput = 10; // Nombre d'input maximum
 
          //-- on recupere le container des onglets
          var OngletContainer = document.getElementById('Onglet');
 
          //-- on compte le nombre d'input existantes
          var numberInput = OngletContainer.getElementsByTagName('input').length + 1;


          //-- on affiche la nouvelle zone
          if ( numberInput < maxInput ){
              OngletContainer.innerHTML += '';
          }
 
          //-- on donne le focus au nouvel input affiché
          document.getElementById('onglet'+numberInput).focus();
         }
      </script>
   </head>


   


      


      


   
</html>
Messages postés
224
Date d'inscription
lundi 19 décembre 2005
Statut
Membre
Dernière intervention
6 juin 2007
3
Encore moi... désolé le code que j'ai proposé a une petite erreur ( probleme sous OPERA )

En fait il faut donner le focus a l'interieur de la condition IF

voila le code final :

<html>
   <head>
      <title>ICWS</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <script type="text/javascript">
         function AfficheOnglet(){
             var maxInput = 10; // Nombre d'input maximum
 
             //-- on recupere le container des onglets
             var OngletContainer = document.getElementById('Onglet');


             //-- on compte le nombre d'input existantes
             var numberInput = OngletContainer.getElementsByTagName('input').length + 1;


             //-- on affiche la nouvelle zone
             if ( numberInput <= maxInput ){
                 OngletContainer.innerHTML += '';
     
                 //-- on donne le focus au nouvel input affiché
                 document.getElementById('onglet'+numberInput).focus();
             }
         }
      </script>
   </head>


  


     


     


  
</html>


Bonne prog

-- The Rubik's Man --
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Merci Bcp pour ton aide, ça marche très très bien,
Ecnore une fois un grand Bravo et merci.
en cherchant sur le net j'ai trouver ce code :
<html>
<head>
<title>Ajout plusieurs champs Texte </title>
<script>
function create_champ(i) {


var i2 = i + 1;


document.getElementById('leschamps_'+i).innerHTML = '';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '[javascript:create_champ('+i2+') +]' : '';


}
</script>


</script>
</head>

<!---->
[javascript:create_champ(2) +]

</html>

Merci encore une 3 eme fois
Messages postés
503
Date d'inscription
mercredi 29 décembre 2004
Statut
Membre
Dernière intervention
20 mars 2012

Tjs pas de reponse;
j'ai chang le langage, je l ai fait en XAJAX, et ça marche tres bien
mais si vous pouvez amelirer(corriger ) celui là, ça sera gentil