web-dev-qa-db-fra.com

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 cette 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"?

93
Gnaniyar Zubair

+1 Gumbo: ‘id’ est le moyen le plus simple d’accéder aux éléments de la page. IE (antérieure à la version 8) renverra les éléments avec un ‘nom’ correspondant s’il ne trouve rien avec l’ID donné, mais qu’il s’agit d’un bogue.

je ne reçois que des "logiciels".

id-vs-name n'affectera pas cela; Je suppose que ce qui s’est passé est que (contrairement à l’exemple de code), vous avez oublié de citer votre attribut ‘value’:

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

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">
72
Gumbo
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 à partir de la forme donc pas de navigateur en ajoute ...

ontop a quelques problèmes en tant qu'opérations de codage/décodage unicode donc utiliser cette fonction

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);
10
ferit
<!DOCTYPE html>
<html>
<body>
<label>Enter your Name here: </label><br>
<input type= text id="namehere" onchange="displayname()"><br>


<script>
function displayname() {
    document.getElementById("demo").innerHTML = 
document.getElementById("namehere").value;
}

</script>


<p id="demo"></p>

</body>
</html> 
6
zakara

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

5
Daniel A. White

Si vous utilisez ASP.NET, les balises de code côté serveur dans les exemples ci-dessous fourniront l'identifiant de contrôle exact, même si vous utilisez des pages maîtres.

Javascript:

document.getElementById("<%=MyControlName.ClientID%>").value;

JQuery:

$("#<%= MyControlName.ClientID %>").val();
3
Sham

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
3
Jim

Fourni quand vous voulez la valeur de la zone de texte. Un simple:

<input type="text" value="software engineer" id="textbox">

var result = document.getElementById("textbox").value;
3
Vicky Chaudhary
 var jobValue=document.FormName.txtJob.value;

Essayez ce code ci-dessus.

jobValue: nom de la variable.
FormName: Nom du formulaire en HTML.
txtJob: nom de la zone de texte

0
Rahul

Vous devez changer votre code comme ci-dessous: -

<html>
<body>
<div>
<form align="center" method=post>
    <input id="mainText" type="text" align="center"placeholder="Search">

    <input type="submit" onclick="myFunction()" style="position: absolute; left: 450px"/>
</form>
</div>
<script>
function myFunction(){
    $a= document.getElementById("mainText").value;
    alert($a);
        }
</script>
</body>
</html>
0
Vishal Thakur



Le problème est que vous avez fait un Petite erreur!

C’est le code JS que j’utilise:

var jobName = document.getElementById("txtJob").value;

Vous ne devriez pas utiliser name = "". utilisez plutôt id = "".

0
1010

Cela devrait être simple en utilisant jquery:

HTML:

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

JS:

  var jobValue = $('#txtJob').val(); //Get the text field value
  $('#txtJob').val(jobValue);        //Set the text field value
0
JamesC

Si vous utilisez un contrôle utilisateur et souhaitez obtenir des valeurs de zone de texte, vous pouvez utiliser le code ci-dessous:

var result = document.getElementById('LE_OtherCostsDetails_txtHomeOwnerInsurance').value;

Ici, LE_OtherCostsDetails est le nom du contrôle utilisateur et txtHomeOwnerInsurance est l'id de la zone de texte.

0
Ranjan Srivastava

parce que vous avez utilisé l’espace entre l’ingénieur logiciel html/php ne prend pas en charge l’espace entre les valeurs dans la zone de texte, vous devez utiliser ce code<input type="text" name="txtJob" value=software_engineer> Il fonctionnera

0
Vikas Sharma

Définir l'identifiant pour la zone de texte. c'est à dire,

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

En javascript 

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

En Jquery

 var jobValue =  $("#txtJob").val();
0
user5686005