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 :

[DOM] Faire appel aux éléments de type input


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut [DOM] Faire appel aux éléments de type input
    Bonjour,

    Je voudrais récuperer tous les élements de type input.
    Sous FF, quand je fais un document.getElementByTagName('input'), le naviigateur me renvoi bien les bon élémeny

    mais pas IE (6)

    j'ai consulté la FAQ DOM de ce site, mais j'ai rien trouvé

    est ce qu'il existe une fonction IE équivalent à getElementsByTagName() sous IE ?

    Merci de vos réponses,

    PS : IE me retour une erreur, 'non implémenté'
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    getElementsByTagName il me semble.

    Edit: en fait tu l'écrit de 2 manières différentes. Désolé

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     function ie_getElementsByTagName(tag) {
       return document.all.tags(tag)
    }
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  4. #4
    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 142
    Points
    11 142
    Par défaut
    curieux
    document.getElementsByTagName() est reconnue par IE également....

    sliderman : on peut voir ton code HTML et javascript ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par le_chomeur Voir le message
    essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     function ie_getElementsByTagName(tag) {
       return document.all.tags(tag)
    }
    ça fonctionne, merci ça ne me retourne pas gérer d'évenemlent sur l'objet

    Pour répondre à la demande de Auteur, voici 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
    24
    25
    26
    27
    28
    29
    30
    window.onload=init;
    function init()
    {
    	$('create-new-env').onchange=env;
    	var env = document.getElementById('para-env').getElementsByTagName('input');
    	for(var i = env.length - 1 ; i>=0;i--)
    	{
    		env[i].onclick=relocate;
    	}
    }
    function env()
    {
    	if(this.checked)
    	{
    		var input = document.createElement('input');
    		input.setAttribute('type','texte');
    		input.setAttribute('name','new-environment-name');
    		input.setAttribute('id','new-environment-name');
    		$('para-new-env').appendChild(input);
     
    	}
    	else
    	{
    		$('para-new-env').removeChild($('new-environment-name'));
    	}
    }
    function relocate()
    {
    	document.location.href="orders.php?env="+this.value;
    }
    et voici le HTML
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    	<head>
    		<title>SkyRecon System - Extranet</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<script type="text/javascript" src="javascript/lib/prototype-1.6.0.2.js"></script>
    		<script type="text/javascript" src="javascript/lib/<br />
    <b>Notice</b>:  Undefined variable: web_engine in <b>C:\Documents and Settings\mrabbaa\Mes documents\workspace\skyline\include\top.php</b> on line <b>8</b><br />
    .js"></script>
    		<link rel="stylesheet" href="image/css.css" type="text/css"/>
     
    		<!--[if IE]><link rel="stylesheet" href="image/cssIE.css" type="text/css"/><![endif]-->
    		<link rel="stylesheet" type="text/css" href="stylesheet/general.css" /><link rel="stylesheet" type="text/css" href="stylesheet/skyrecon.css" /><script type="text/javascript" src="javascript/environments.js"></script>		<link rel="icon" type="image/png" href="image/sky_16.png" />
            </head>
            <body>
            	<table height="120" width="100%" bgcolor="#ffffff" border="0" align="center" cellpadding="0" 
            		cellspacing="0">
            		<tr>
    					<td class="title">
    						<a href="panel.php">
     
    							<img src="image/spacer.gif" width="200" border="0" height="120" alt="spacer" />
    						</a>
    					</td>
    					<td class="topcenter" id="warning">
    					</td>
    					<td class="topright">
    						<img src="image/spacer.gif" width="1" border="0" height="1" alt="spacer" />
    					</td>
    				</tr>
     
    			</table>
    			<table width="100%"  bgcolor="#ffffff" border="0" align="center" cellpadding="0" cellspacing="0">
    				<tr>
    					<td class="leftborderpath">
    						<img src="image/spacer.gif" width="1" height="1" alt="spacer" />
    					</td>
    					<td id="TDmain">
           				<div id="header">
    	                	<div id="user">
     
    	                		<p>Welcome mrabbaa</p>
    	                	</div>
    	               		<div id="logout">
    	               			<a class="button" href="script/logout.php">
    	               				<span>Logout</span>
    	               			</a>
    	               		</div>
           				</div>
     
           				<div id="header_barre"> 
           				</div><div class="menu">
    	<ul>
    <li class="action"><a href=panel.php?type=product>Product information</a></li><li class="action"><a href="account.php">New Account</a></li><li class="action"><a href="admin.php">Administration</a></li><li class="action"><a href="create-client-account.php">Marketing documentation</a></li><li class=action><a href="version.php"?type = prod_doc>Product Documentation</a></li><li class=action><a href="version.php">Software</a></li><li class="action"><a href="licence.php">Access Key</a></li><li class="action"><a href="orders.php">Manage orders</a></li>		<li class='action' style='margin-top:50px;'><a href='script/logout.php'>Logout</a></li>
    	</ul>
     
    </div>
    <div class="mainCenter">	<div class='TxtLabel'>Account's data</div><br />
     
    <div class="sub">
    	<div class="divLabel">Login</div>
    	<div class="divValue">mrabbaa</div>
    </div>
    <div class="sub">
    	<div class="divLabel">Firstname</div>
     
    	<div class="divValue">rabbaa</div>
    </div>
    <div class="sub">
    	<div class="divLabel">Lastname</div>
    	<div class="divValue">marwan</div>
    </div>
    <div class="sub">
    	<div class="divLabel">password</div>
    	<div class="divValue">wayerdiove</div>
     
    </div>
    <div class="sub">
    	<div class="divLabel">Language</div>
    	<div class="divValue">fr</div>
    </div>
    <div class="sub">
    	<div class="divLabel">Email</div>
    	<div class="divValue">mrabbaa@skyrecon.com</div>
    </div>
     
    <div class="sub">
    	<div class="divLabel">Phone</div>
    	<div class="divValue">0124568797</div>
    </div>
     
    <div class="sub">
            <div class="divLabel">Version</div>
            <div class="divValue">4.2</div>
    </div>
     
    <div class="sub">
            <div class="divLabel">Company</div>
            <div class="divValue">google</div>
    </div>
    <div class="sub">
    	<p>Existing environments</p>
    	<form action="copy.php?type=link-already" method="post" class="cssform">
    	<p id="para-env">
    	<label for="env-exist:1">Tartampion</label><input type="radio" value="1" id="env-exist:1" name="env-id" /><label for="env-exist:2">Ambonpoint</label><input type="radio" value="2" id="env-exist:2" name="env-id" />	</p>
     
    	<p id="para-new-env">
    	<label for="new">New Environments</label>
    	<input type="radio" value="new" name="new" id="create-new-env" />
    	<input type="submit" value="Create" />
    	</p>
    	<p>Copy a licence on the customer's directory</p>
    	<p>
    	<form action="copy.php" method="post" class="cssform">
     
    		<input type="hidden" name="myAction" value="search">
    		<input type="hidden" name="account" value="1">
    		<fieldset>
    			<p>
    			    <label for="client">Environment: </label>	
    			    <input type="text" id="env" name="env" value="" />
    			</p> 
    			<p>
    			    <input type="submit" id="submit" name="submit" value="Search" />
     
    			    <input type="reset" id="reset" name="reset" value="Reset" />
    			</p>     
    		</fieldset>
    	</form>
    	</p>
    </div>
    </DIV>
    </TD>
    <TD class="rightborderpath"><IMG src="image/spacer.gif" width="1" height="1" /></TD>
    </TR>
    </TABLE>
    <TABLE height="25" width="100%" bgcolor="#ffffff" border="0" align="center" cellpadding="0" cellspacing="0">
    <TR>
     
    <TD class="bottomleft" valign="top"><IMG src="image/spacer.gif" width="1" border="0" height="1" /></TD>
     
    <TD class="btmsection"><IMG src="image/spacer.gif" width="1" border="0" height="1" /></TD>
    <TD class="bottomright" valign="top"><IMG src="image/spacer.gif" width="1" border="0" height="1" /></TD>
     
    </TR>
    </TABLE>
     
    <script language="javascript">
    document.getElementById("warning").innerHTML = "";
    </script>
     
    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
    </script>
    <script type="text/javascript">
    _uacct = "UA-1177753-4";
    urchinTracker();
    </script>
            </body>
     
    </html>
    il me semble que c'est cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('create-new-env').onclick=env;
    qui fait que les autres ne sont pas interprétées.
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il serait judicieux de renommer soit ta variable, soit ta fonction.
    Parce qu'avec ton code actuel, il peut y avoir des erreurs d'interprétation du nav (ou du développeur )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$('create-new-env').onchange=env;
    	var env = document.getElementById('para-env').getElementsByTagName('input');
    	for(var i = env.length - 1 ; i>=0;i--)
    	{
    		env[i].onclick=relocate;
    	}
    }
    function env()
    ...
    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    heu ça c'est pas crossbrowser ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,
    il serait judicieux de renommer soit ta variable, soit ta fonction.
    Parce qu'avec ton code actuel, il peut y avoir des erreurs d'interprétation du nav (ou du développeur )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$('create-new-env').onchange=env;
    	var env = document.getElementById('para-env').getElementsByTagName('input');
    	for(var i = env.length - 1 ; i>=0;i--)
    	{
    		env[i].onclick=relocate;
    	}
    }
    function env()
    ...
    A+

    toujours pareil
    Citation Envoyé par SpaceFrog Voir le message
    heu ça c'est pas crossbrowser ...
    enfaite j'ai une lib (lib-tident) qui est loader au chargement d'IE et une autre au chargement de firefox (lib-gecko)

    oui j'aime bien le chargement dynamique
    j'ai finallement changé mon script
    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
    window.onload=init;
    function init()
    {
     
    	var env = document.getElementById('para-env').getElementsByTagName('input');
    	for(var i = env.length - 1 ; i>=0;i--)
    	{
    		env[i].onclick=function()
    		{
    			document.location.href="orders.php?env="+this.value;
    		}
    	}
    	document.getElementById('create-new-env').onclick=function()
    	{
    		if(this.checked)
    		{
    			var input = document.createElement('input');
    			input.setAttribute('type','texte');
    			input.setAttribute('name','new-environment-name');
    			input.setAttribute('id','new-environment-name');
    			$('para-new-env').appendChild(input);
     
    		}
    		else
    		{
    			$('para-new-env').removeChild($('new-environment-name'));
    		}
    	}
    }
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu ça c'est pas crossbrowser ...
    Alors que getElementsByTagName, si.
    D'où ma remarque ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Alors que getElementsByTagName, si.
    D'où ma remarque ...

    A+
    Comme je t'ai dis j'utilise une libraire par navigateur
    pour IE : lib-trident
    pour FF : lib-gecko

    lib-trident remplace (implémente) la fonction getElementsByTagName et retourne le résultat de document.all.$tag
    où tag est le nom recherché

    en tout cas merci à le_chomeur pour sa remarque
    http://aldorande.miniville.fr/ind
    Fedora 8, eclipse 3.3 sur x86_64
    --------------
    Colorer votre code php

  11. #11
    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 142
    Points
    11 142
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    var input = document.createElement('input');
    		input.setAttribute('type','texte');
    		input.setAttribute('name','new-environment-name');
    		input.setAttribute('id','new-environment-name');
    les fonctions setAttribute et getAttribute ne sont pas reconnues par IE !!!
    il faudrait mettre cette remarque dans la FAQ où je ne sais où... Cette erreur devient récurrente


    Il faut écrire :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                   var input = document.createElement('input');
    		input.type = "text"; // c'est text pas texte ;)
    		/*input.name = "new-environment-name";*/ // problème avec IE voir ma remarque ci-dessous
    		input.id = "new-environment-name";


    pour enfoncer le clou et paraphraser Spacefrog : avec IE on ne peut attribuer dynamiquement l'attribut name d'un élément

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    si mais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var input = document.createElement('<input name = "new-environment-name">);
    et du coup il faut deux synatxes une pour IE et une pour Gecko ...

    mais vas vois les contributions FORM DYNAMIQUE ...
    y'a tout ce qu'il faut
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    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 142
    Points
    11 142
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    si mais comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var input = document.createElement('<input name = "new-environment-name">');
    et du coup il faut deux syntaxes une pour IE et une pour Gecko ...

    mais vas vois les contributions FORM DYNAMIQUE ...
    y'a tout ce qu'il faut
    oui disons que je n'ai pas l'habitude d'utiliser createElement de cette manière. Et comme tu l'écris il faut deux syntaxes
    Oui j'ai vu ta contribution

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

Discussions similaires

  1. Faire appel aux fonctions d'un programme externe
    Par juniordev dans le forum C++/CLI
    Réponses: 1
    Dernier message: 22/10/2013, 10h45
  2. Faire appel aux API Win32 sans IAT
    Par yannguibet dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 01/08/2008, 16h21
  3. Compatibilité des appels aux éléments de formulaire
    Par speedev dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 02/07/2008, 16h14
  4. Fonctions : faire appel aux Blocks et callbacks
    Par alitoch dans le forum Ruby
    Réponses: 8
    Dernier message: 24/05/2007, 19h41
  5. Peut-on faire appel aux interruptions sous Windows ?
    Par lorenfar dans le forum Assembleur
    Réponses: 10
    Dernier message: 09/05/2005, 18h42

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