110 votes

Comment obtenir une valeur de zone de texte en javascript

J'essaie d'utiliser javascript pour obtenir la valeur d'une zone de texte html mais la valeur ne vient pas après un espace

Par exemple:

  <input type="text" name="txtJob" value="software engineer">
 

Je reçois seulement: "logiciel" de ce qui précède. J'utilise un script comme celui-ci:

 var jobValue = document.getElementById('txtJob').value
 

Comment puis-je obtenir la valeur complète: "ingénieur logiciel"?

81voto

Gumbo Points 279147

Votre élément n'a pas d'identifiant mais juste un nom. Vous pouvez donc utiliser la méthode getElementsByName() pour obtenir une liste de tous les éléments portant ce nom:

 var jobValue = document.getElementsByName('txtJob')[0].value  // first element in DOM  (index 0) with name="txtJob"
 

Ou vous attribuez un ID à l'élément:

 <input type="text" name="txtJob" id="txtJob" value="software engineer">
 

65voto

bobince Points 270740

+1 Gumbo: "id" est le moyen le plus simple d'accéder aux éléments de page. IE (avant la version 8) renverra les éléments avec un «nom» correspondant s'il ne trouve rien avec l'identifiant donné, mais qu'il s'agit d'un bogue.

Je ne reçois que des "logiciels".

id-vs-name n'affectera pas cela; Je soupçonne que ce qui est arrivé est que (contrairement à l'exemple de code), vous avez oublié de citer votre attribut 'value':

 <input type="text" name="txtJob" value=software engineer>
 

15voto

ferit Points 31
 var word = document.getElementById("word").value;//by id
or
var word = document.forms[0].elements[0].value;//by index
//word = a word from form input
var kodlandi = escape(word);//apply url encoding

alert(escape(word));
or
alert(kodlandi);
 

le problème que vous n'utilisez pas l'encodage pour les valeurs d'entrée de la forme alors pas navigateur ajoute les à ...

ontop a quelques problèmes en tant que codage / décodage unicode alors utiliser cette fonction encodant des chaînes / des tableaux

 function urlencode( str ) 
{
// http://kevin.vanzonneveld.net3.    
// +   original by: Philip Peterson4.    
// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)5.    
// *     example 1: urlencode('Kevin van Zonneveld!');
// *     returns 1: 'Kevin+van+Zonneveld%21'7. 
   var ret = str; 
   ret = ret.toString();
   ret = encodeURIComponent(ret);
   ret = ret.replace(/%20/g, '+');
   return ret;
}


ex.
var word = "some word";
word = urlencode(word);
 

4voto

Daniel A. White Points 91889

Définissez l'attribut id des input à txtJob . Votre navigateur est bizarre lorsque vous appelez getElementById .

3voto

Jim Points 411

Si c'est sous une forme alors ce serait:

 <form name="jojo">
<input name="jobtitle">
</form>
 

Ensuite, vous diriez en javascript:

 var val= document.jojo.jobtitle.value

document.formname.elementname
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X