IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Encore et toujours compatibilité FF/IE


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Encore et toujours compatibilité FF/IE
    Bonjour à tous !

    Je développe un site en local. J'ai écris une fonction pour ajouter des champs de formulaire quand on clique sur une checkbox. En fait on a au départ une première ligne avec un checkbox, un select et un champ de texte. Si on clique sur la checkbox, cela ajoute une nouvelle ligne (avec checkbox, select et champ de texte) et ainsi de suite.

    En suivant la fonction JS et le code de départ de la page:

    Fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    function addrow(nform,nom,nb,ids,values,check){
    	//Reconstruire les tableaux pour la liste de valeurs
    	var key=ids.split("|",-1);
    	var val=values.split("|",-1);	
     
    	var form=document.getElementById(nform);
     
    	//Si la dernière case est cliquée
    	if((document.getElementById(nom+3)==null&&check.checked)||(document.getElementById(nom+(parseInt(nb)+3))==null)){
    		//Repérer le node suivant pour les insertions d'éléments
    		var next=document.getElementById(nom+(parseInt(nb)+2)).nextSibling;
     
    		//Sauter une ligne
    		var br=document.createElement("br");
    		form.insertBefore(br,next);
     
    		//Créer la nvlle checkbox
    		var nouvoc=document.createElement("input");
    		nouvoc.setAttribute("type","checkbox");
    		nouvoc.setAttribute("name",nom+"check[]");
    		nouvoc.setAttribute("id",nom+(parseInt(nb)+3));
    		nouvoc.setAttribute("onChange","addrow('"+ nform +"','"+ nom +"','"+ (parseInt(nb)+3) +"','"+ ids +"','"+ values +"')");
    		form.insertBefore(nouvoc,next);
     
    		//Créer le nouveau select
    		var nouvol=document.createElement("select");
    		nouvol.setAttribute("id",nom+(parseInt(nb)+4));
    		nouvol.setAttribute("disabled","disabled");
    		nouvol.setAttribute("name",nom+"[]");
    		form.insertBefore(nouvol,next);
     
    		//Remplir les options du nouveau select
    		for(var i=0;i<key.length;i++){
    			opt=new Option(val[i],key[i],false,false);
    			nouvol.options[i]=opt;
    		}
     
    		//Créer le nouveau champ de texte
    		var nouvot=document.createElement("input");
    		nouvot.setAttribute("id",nom+(parseInt(nb)+5));
    		nouvot.setAttribute("disabled","disabled");
    		nouvot.setAttribute("name","distance"+nom+"[]");
    		nouvot.setAttribute("type","text");
    		form.insertBefore(nouvot,next);
    	}
    	//Griser/Dégriser
    	if(document.getElementById(nom+(parseInt(nb)+1)).disabled){ document.getElementById(nom+(parseInt(nb)+1)).disabled=false; document.getElementById(nom+(parseInt(nb)+2)).disabled=false; }
    	else{ document.getElementById(nom+(parseInt(nb)+1)).disabled=true; document.getElementById(nom+(parseInt(nb)+2)).disabled=true; }
    }
    Code de départ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<input type='checkbox' id='".$nom."0' name='check".$ligne['NOM']."' onChange=\"addrow('form','$nom',0,'$keys','$values',this)\" /><select id='".$nom."1' name='".$ligne['NOM']."' disabled='disabled'>";
    reset($tab);
    while(list($key,$val)=each($tab)) echo "<option value='$key'>$val</option>";
    echo "</select><input type='text' disabled='disabled' id='".$nom."2' name='distance".$ligne['NOM']."' />";
    Ceci fonctionne parfaitement sous FF et évidemment pas sous IE. Je ne suis pas spécialiste d'IE, je ne sais pas d'où ça vient, si quelqu'un peut m'auguiller ce serait sympa.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 143
    Points
    11 143
    Par défaut
    bonjour,

    compare ton code avec cet exemple

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Oh bien vu, merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MooTools] Compatibilité IE (encore et toujours)
    Par Storming dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 29/11/2011, 01h05
  2. Clic droit encore et toujours
    Par Stéphane Olivier BERNARD dans le forum Access
    Réponses: 3
    Dernier message: 22/05/2006, 00h26
  3. IE/Firefox... encore et toujours...
    Par maniaco_jazz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/02/2006, 23h17
  4. nodes, child et compatibilité... encore et toujours
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 14h26
  5. stencil buffer, encore et toujours
    Par JAimeBienCoderBourre dans le forum OpenGL
    Réponses: 4
    Dernier message: 08/04/2005, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo