11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je cherche à récupérer la valeur de mon input text une fois sa nouvelle valeur saisie.

Lorsque j'entre une nouvelle valeur et que je clique sur recuperer c'est la valeur par defaut (dans le code : Nom) qui est retournee et non la nouvelle valeur.

Kezaco ?

Voudriez vous bien m'aider à trouver une solution ?

Merci.

Le code :



<!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">
  <head>
    <meta http-equiv="Content-Type" content=
    "text/html; charset=us-ascii" />
    <title>
     Dom
    </title>
  </head>
  <body>
		<div id="test"></div>
		<script>
		 var balise=document.getElementById("test");
		 var baliseInput=document.createElement("input");
		 baliseInput.setAttribute("type","text");
		 baliseInput.setAttribute("value","Nom");
		 
		 var texteDiv = document.createTextNode("Recuperer input");
		 var baliseDiv=document.createElement("div");
		 addEvent( baliseDiv,'click', recuperer );
		 baliseDiv.appendChild(texteDiv);
		 
		 balise.appendChild(baliseInput);
		 balise.appendChild(baliseDiv);
		 
		 
		 function recuperer()
		 {
		  var baliseInput=document.getElementsByTagName("input")[0];
      var valeurInput = baliseInput.getAttribute('value')
      alert(valeurInput);
		 }
		 
		 
     function addEvent( obj, type, fn ) 
		 {
      if ( obj.attachEvent ) 
			{
       obj['e'+type+fn] = fn;
       obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
       obj.attachEvent( 'on'+type, obj[type+fn] );
      } 
			else
			{
       obj.addEventListener( type, fn, false );
      }
		 }
     function removeEvent( obj, type, fn ) 
		 {
      if ( obj.detachEvent ) 
			{
       obj.detachEvent( 'on'+type, obj[type+fn] );
       obj[type+fn] = null;
      } 
			else
			{
       obj.removeEventListener( type, fn, false );
			}
     }
		</script>
  </body>
</html>


Modifié par sylvainmart (30 May 2007 - 16:05)
Je trouve ça normal Smiley ohwell

Pourquoi ne pas donner un id à ton input d'aileurs? Au lieux de faire un getElementsByTagName() ?
Ta méthode d'enlever setAttribute fonctionne bien sous internet explorer mais pas sous firefox.

Kezaco ?

Bizarre...

Encore merci, déjà à la moitié du chemin.
Ah vraiment super, ça fonctionne, c'est magique, merci beaucoup Julien, et vive le forum de Alsacreations.

Que de temps gagné !


<!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">
  <head>
    <meta http-equiv="Content-Type" content=
    "text/html; charset=us-ascii" />
    <title>
     Dom
    </title>
  </head>
  <body>
		<div id="test"></div>
		<script>
		 var balise=document.getElementById("test");
		 var baliseInput=document.createElement("input");
		 baliseInput.setAttribute("type","text");
		 baliseInput.setAttribute("value","Nom");
		 baliseInput.setAttribute("id","monNom");
		 
		 var texteDiv = document.createTextNode("Recuperer input");
		 var baliseDiv=document.createElement("div");
		 addEvent( baliseDiv,'click', recuperer );
		 baliseDiv.appendChild(texteDiv);
		 
		 balise.appendChild(baliseInput);
		 balise.appendChild(baliseDiv);
		 
		 
		 function recuperer()
		 {
		  var baliseInput=document.getElementById("monNom");
			var valeurInput=baliseInput.value;
      alert(valeurInput);
		 }
		 
		 
     function addEvent( obj, type, fn ) 
		 {
      if ( obj.attachEvent ) 
			{
       obj['e'+type+fn] = fn;
       obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
       obj.attachEvent( 'on'+type, obj[type+fn] );
      } 
			else
			{
       obj.addEventListener( type, fn, false );
      }
		 }
     function removeEvent( obj, type, fn ) 
		 {
      if ( obj.detachEvent ) 
			{
       obj.detachEvent( 'on'+type, obj[type+fn] );
       obj[type+fn] = null;
      } 
			else
			{
       obj.removeEventListener( type, fn, false );
			}
     }
		</script>
  </body>
</html>