So erhalten Sie den Textfeldwert in JavaScript

97

Ich versuche, JavaScript zu verwenden, um den Wert aus einem HTML-Textfeld abzurufen, aber der Wert kommt nicht nach Leerzeichen

Beispielsweise:

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

Ich bekomme nur: "Software" von oben. Ich benutze ein Skript wie dieses:

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

Wie bekomme ich den vollen Wert: "Software Engineer"?

Gnaniyar Zubair
quelle

Antworten:

63

+1 Gumbo: 'id' ist der einfachste Weg, um auf Seitenelemente zuzugreifen. IE (vor Version 8) gibt Dinge mit einem passenden 'Namen' zurück, wenn mit der angegebenen ID nichts gefunden werden kann, dies ist jedoch ein Fehler.

Ich bekomme nur "Software".

id-vs-name hat keinen Einfluss darauf. Ich vermute, was passiert ist, ist, dass Sie (im Gegensatz zum Beispielcode) vergessen haben, Ihr Attribut 'value' anzugeben:

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

Ihr Element hat keine ID, sondern nur einen Namen. Sie können also entweder die getElementsByName()Methode verwenden, um eine Liste aller Elemente mit diesem Namen abzurufen:

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

Oder Sie weisen dem Element eine ID zu:

<input type="text" name="txtJob" id="txtJob" value="software engineer">
Gumbo
quelle
11
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);

Das Problem, dass Sie keine Codierung für Eingabewerte aus dem Formular verwenden, sodass kein Browser ...

ontop hat einige Probleme mit Unicode-Codierungs- / Decodierungsoperationen. Verwenden Sie daher diese Funktion zum Codieren von Zeichenfolgen / Arrays

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);
ferit
quelle
7
<!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> 
Zakara
quelle
4

Setzen Sie das idAttribut von inputauf txtJob. Ihr Browser verhält sich beim Anruf skurril getElementById.

Daniel A. White
quelle
4

Wenn Sie ASP.NET verwenden, geben die serverseitigen Code-Tags in den folgenden Beispielen die genaue Steuerelement-ID an, selbst wenn Sie Masterseiten verwenden.

Javascript:

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

JQuery:

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

Wenn es in einer Form vorliegt, wäre es:

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

Dann würden Sie in Javascript sagen:

var val= document.jojo.jobtitle.value

document.formname.elementname
Jim
quelle
3

Wird bereitgestellt, wenn Sie den Textfeldwert möchten. Einfache Sache:

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

var result = document.getElementById("textbox").value;
Vicky Chaudhary
quelle
0

Wenn Sie ein Benutzersteuerelement verwenden und Textfeldwerte abrufen möchten, können Sie den folgenden Code verwenden:

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

Hier LE_OtherCostsDetailsist der Name des Benutzersteuerelements und txtHomeOwnerInsurancedie ID des Textfelds.

Ranjan Srivastava
quelle
0



Das Problem ist, dass Sie einen kleinen Fehler gemacht haben!

Dies ist der JS-Code, den ich verwende:

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

Sie sollten nicht name = "" verwenden. Verwenden Sie stattdessen id = "".

1010
quelle
0

Sie müssen Ihren Code wie folgt ändern: -

<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>
Vishal Thakur
quelle
0

Da Sie Speicherplatz zwischen Softwareentwickler verwendet haben, unterstützt HTML / PHP keinen Speicherplatz zwischen Wert unter Textfeld, müssen Sie diesen Code verwenden. <input type="text" name="txtJob" value=software_engineer> Es wird funktionieren

Vikas Sharma
quelle
0
 var jobValue=document.FormName.txtJob.value;

Versuchen Sie diesen Code oben.

jobValue: Variablenname.
FormName: Name des Formulars in HTML.
txtJob: Textfeldname

27px
quelle
0

Dies sollte mit jquery einfach sein:

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
JamesC
quelle
0

Legen Sie die ID für das Textfeld fest. dh

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

In Javascript

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

In Jquery

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

quelle