Probleme Script Ajout Zones de texte

Résolu
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 11 oct. 2006 à 13:06
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 12 oct. 2006 à 00:34
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

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
11 oct. 2006 à 23:19
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>
3
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
12 oct. 2006 à 00:24
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 --
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
12 oct. 2006 à 00:34
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
3
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
11 oct. 2006 à 16:54
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
0
Rejoignez-nous