2009-04-18 5 views
91

Je suis en train d'utiliser JavaScript pour obtenir la valeur d'une zone de texte HTML, mais la valeur ne vient pas après l'espace blancComment obtenir un texte valeur boîte en JavaScript

Par exemple:

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

Je ne obtenir: "logiciel" de ce qui précède. J'utilise un script comme celui-ci:

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

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

Répondre

52

+1 Gumbo: « id » est le moyen le plus simple d'accéder aux éléments de la page. IE (pré version 8) retournera les choses avec un 'nom' correspondant s'il ne trouve rien avec l'ID donné, mais ceci est un bug.

Je reçois seulement un "logiciel".

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

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

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

68

Votre élément n'a pas d'ID mais juste un nom. Donc, vous pouvez soit utiliser la méthode getElementsByName() pour obtenir une liste de tous les éléments avec ce nom:

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

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

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

Si elle est sous une forme, il serait alors:

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

ensuite, vous dire en javascript:

var val= document.jojo.jobtitle.value 

document.formname.elementname 
8
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 le codage des valeurs d'entrée de la forme donc pas navigateur ajoute les à ...

a ontop quelques problèmes que les opérations unicode encodage/décodage donc utiliser cette fonction d'encodage chaînes/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); 
3

fourni lorsque vous voulez que la valeur de zone de texte . Simple:

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

var result = document.getElementById("textbox").value; 
3

Si vous utilisez ASP.NET, les balises de code côté serveur dans ces exemples ci-dessous fournira l'ID de contrôle précis, même si vous utilisez des pages Master.

Javascript:

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

JQuery:

$("#<%= MyControlName.ClientID %>").val(); 
+0

est-ce pas ASP? – 8bitslime

0

Si vous utilisez un contrôle utilisateur et que vous 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 t Il id de la zone de texte.

5
<!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> 
0



Le problème est que vous avez fait une petite erreur !

Voici le code JS J'utilise:

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

Vous ne devriez pas utiliser name = "". à la place, utilisez id = "".

0

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

parce que vous avez utilisé l'espace entre l'ingénieur logiciel html/php ne soutiendra pas l'espace entre la valeur en zone de texte, vous devez utiliser ce code <input type="text" name="txtJob" value=software_engineer> Il travaillera

0
var jobValue=document.FormName.txtJob.value; 

Essayez ce code ci-dessus.

jobValue: nom de la variable.
FormName: Nom du formulaire en html.
txtJob: Nom Textbox

0

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

Set ID pour la zone de texte. à savoir,

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

javascript

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

Dans Jquery

var jobValue = $("#txtJob").val(); 
Questions connexes