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 :

[IE]Ajout de texte dans une value


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2006
    Messages
    102
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par d�faut [IE]Ajout de texte dans une value
    Bonsoir tout le monde

    Voila, en ce moment j'ai des probl�mes avec Internet Explorer, mon probl�me vient de la value d'un textarea.
    En faites, ma fonction cr�er un textarea, lui assigne une value, etc...
    Mais le probl�me sous IE, c'est qu'il me rajoute du texte en plus qui vient d'on ne sais o�

    Donc voil� mon code :
    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
     
    function createTextarea(parent,id,content,cols,source){
    	content = "test";
    	var el = document.createElement('textarea');
    	alert(el.innerHTML);
    	if(navigator.appName == "Microsoft Internet Explorer"){
     
    		el.id = id;
    		alert("Avant = "+el.value);
    		el.value = "toto";
    		alert("Après = "+el.value);
    		el.cols = cols;
    		el.onkeyup = function(){adaptRows(this);exit(event,source);this.value = $('edition').value;}
    	}else{
    		alert("On rentre ici");
    		el.setAttribute('id',id);
    		el.setAttribute('value',content);
    		el.setAttribute('cols',cols);
    		el.setAttribute('onkeyup',"adaptRows(this);exit(event,'"+source+"');");
    	}
    	el.appendChild(document.createTextNode(content));
    	$(parent).appendChild(el);
    }
    Et donc, l� lors de mon premier alert, il m'indique bien que ma value est vide, et lors du deuxi�me alert, il m'affiche bien que la value vaut toto, cependant lorsque IE affiche mon textarea, il m'affiche tototest.

    Donc en faites je ne comprend pas d'o� peux venir le probl�me :s
    Et si par exemple, je garde la variable content sans la d�clarer � nouveau dans la fonction, elle s'affichera alors deux fois, par exemple si content valais toto et que je ne la re-d�finie pas, alors dans la value j'aurai eut totototo, et je ne comprend vraiment pas, car lorsque je fais une alert, il m'affiche bien une seule fois toto, et le code marche parfaitement pour FF et Opera :s

    Voila, merci d'avance et bonne soir�e

  2. #2
    Membre chevronn� Avatar de htr999
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2008
    Messages
    331
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2008
    Messages : 331
    Par d�faut
    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
     
    function createTextarea(parent,id,content,cols,source){
    	content = "test";
    	var el = document.createElement('textarea');
    	alert(el.innerHTML);
    	if(navigator.appName == "Microsoft Internet Explorer"){
     
    		el.id = id;
    		alert("Avant = "+el.value);
    		el.value = "toto";
    		alert("Après = "+el.value);
    		el.cols = cols;
    		el.onkeyup = function(){adaptRows(this);exit(event,source);this.value = $('edition').value;}
    	}else{
    		alert("On rentre ici");
    		el.setAttribute('id',id);
    		el.setAttribute('value',content);
    		el.setAttribute('cols',cols);
    		el.setAttribute('onkeyup',"adaptRows(this);exit(event,'"+source+"');");
    	}
    	el.appendChild(document.createTextNode(content));
    	$(parent).appendChild(el);
    }
    apr�s les tests, je m'aper�ois que IE ne prend pas en compte el.value = "toto";
    le fait que IE donne tototest c'est parce que tu as ajout�
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    el.appendChild(document.createTextNode(content));
    � la 2eme ligne du bas.

    j'ai invent� moi-m�me du code dans Body pour le test. essaie cela
    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
    <html>
    <head>
    <script>
    function createTextarea(parent,id,content,cols,source){
    	var el = document.createElement('textarea');
    	if(navigator.appName == "Microsoft Internet Explorer"){
    		el.id = id;
    		el.value = content;
    		el.cols = cols;
    		el.onkeyup = function(){adaptRows(this);exit(event,source);this.value = $('edition').value;}
    	}else{
    		el.setAttribute('id',id);
    		el.appendChild(document.createTextNode(content));
    		el.setAttribute('cols',cols);
    		el.setAttribute('onkeyup',"adaptRows(this);exit(event,'"+source+"');");
    	}
    	//el.appendChild(document.createTextNode(content));
     
    	elemParent = document.getElementById("parent");
    	elemParent.appendChild(el);
    	alert(elemParent.innerHTML);
    }
    </script>
    </head>
     
    <body>
    	<div id="parent"></div>
    	<script>
    		createTextarea("parent","nono","toto",5,"none");
    	</script>
    </body>
    </html>
    A+

  3. #3
    Membre confirm�
    Homme Profil pro
    �tudiant
    Inscrit en
    Octobre 2006
    Messages
    102
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 102
    Par d�faut
    Merci beaucoup, cette solution marche parfaitement pour IE

    Mais h�las pour FF et Opera il semblerait que sa soit obligatoire de mettre : el.appendChild(document.createTextNode(content)); car sinon il ne m'affiche pas de contenu dans mon textarea, ce qui donne donc au finale :

    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
     
    function createTextarea(parent,id,content,cols,source){
    	var el = document.createElement('textarea');
    	el.setAttribute('id',id);
    	el.setAttribute('cols',cols);
    	if(navigator.appName == "Microsoft Internet Explorer"){
    		el.setAttribute('value',content);
    		el.onkeyup = function(){adaptRows(this);exit(event,source);this.value = $('edition').value;}
    	}else{
    		el.appendChild(document.createTextNode(content));
    		el.setAttribute('onkeyup',"adaptRows(this);exit(event,'"+source+"');");
    	}
    	$(parent).innerHTML += "Contenu supplémentaire <br />";
    	$(parent).appendChild(el);
    }
    Et encore merci htr999 pour la solution pour IE

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Ajouter du texte dans une edit box
    Par raf_gug dans le forum MFC
    R�ponses: 10
    Dernier message: 23/05/2013, 10h00
  2. Ajout de texte dans une popup via js
    Par max33370 dans le forum ASP.NET
    R�ponses: 4
    Dernier message: 02/06/2010, 16h12
  3. [JGraph] ajouter du texte dans une cellule
    Par publicStaticVoidMain dans le forum AWT/Swing
    R�ponses: 0
    Dernier message: 10/11/2009, 16h44
  4. Ajouter du texte dans une ListBox sans sauter de ligne
    Par walid_kerkoub dans le forum Composants VCL
    R�ponses: 2
    Dernier message: 03/03/2008, 15h42
  5. R�ponses: 1
    Dernier message: 25/10/2006, 22h03

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