Ich habe ein Textfeldelement, auf dessen Wert ich mit document.getElementById("id-name").value
zugreifen möchte. Ich finde, dass der Aufruf eine leere Zeichenfolge zurückgibt. Der Datentyp des zurückgegebenen Wertes ist immer noch eine Zeichenfolge. Ist null ein Stringwert?
<input type="text" value="" id="mytext">
ist das Textfeld, dessen Wert ich mit var mytextvalue = document.getElementById("mytext").value;
abrufen möchte.
Das Veröffentlichen Ihres HTML-Codes kann ein wenig hilfreich sein. Stattdessen können Sie das Element zuerst abrufen und dann prüfen, ob es null ist oder nicht, und dann nach seinem Wert fragen, anstatt nur direkt nach dem Wert zu fragen, ohne zu wissen, ob das Element im HTML-Code sichtbar ist.
element1 = document.getElementById(id);
if(element1 != null)
{
//code to set the value variable.
}
dies kann passieren, wenn Sie das html type = "number" -Attribut für Ihr Eingabe-Tag verwenden. Wenn Sie eine Nicht-Nummer eingeben, wird diese gelöscht, bevor Ihr Skript weiß, was los ist.
Diese Demo wird in Chrome 14, FF3 und FF5 (mit Firebug) für mich korrekt zurückgegeben:
var mytextvalue = document.getElementById("mytext").value;
console.log(mytextvalue == ''); // true
console.log(mytextvalue == null); // false
wenn Sie console.log
in alert
ändern, erhalte ich immer noch die gewünschte Ausgabe in IE6.
try this...
<script type="text/javascript">
function test(){
var av=document.getElementById("mytext").value;
alert(av);
}
</script>
<input type="text" value="" id="mytext">
<input type="button" onclick="test()" value="go" />
Bitte überprüfen Sie diese Geige und lassen Sie mich wissen, wenn Sie eine Warnung über den Nullwert erhalten. Ich habe Ihren Code dort kopiert und ein paar Warnungen hinzugefügt. Genau wie andere sehe ich auch keine Null, die zurückgegeben wird, ich bekomme eine leere Zeichenfolge. Welchen Browser benutzen Sie?
Für Ihren Code
var mytextvalue = document.getElementById("mytext");
mytextvalue
enthält null
, wenn Sie vor diesem Code eine document.write()
-Anweisung haben. Entfernen Sie also die document.write
-Anweisung und Sie sollten in der Variablen mytextvalue
ein geeignetes Textobjekt erhalten.
Dies wird dadurch verursacht, dass document.write
das Dokument ändert.
Es scheint, dass Sie das value-Attribut in HTML-Markup nicht angegeben haben.
Fügen Sie es dort als <input value="" ... >
hinzu.
Ich glaube, das Textfeld, auf das Sie zugreifen möchten, ist zum Zeitpunkt der Ausführung Ihres Javascript noch nicht auf die Seite geladen.
dh, damit Javascript die Textbox aus dem DOM der Seite lesen kann, muss die Textbox als Element verfügbar sein. Wenn das Javascript aufgerufen wird, bevor das Textfeld auf die Seite geschrieben wird, ist das Textfeld nicht sichtbar und NULL wird zurückgegeben.