it-swarm.com.de

Warum wird mein Elementwert nicht geändert? Benutze ich die falsche Funktion?

Ich habe eine asp.net mvc-Anwendung und ich versuche, meinem Textfeld dynamisch einen Wert zuzuweisen, aber es scheint nicht zu funktionieren (ich teste nur auf IE im Moment). Das ist was Ich habe gerade jetzt ..

document.getElementsByName('Tue').Value = tue; (übrigens ist tue eine Variable)

Ich habe auch diese Variante ausprobiert, aber es hat auch nicht funktioniert.

document.getElementsById('Tue').Value = tue; (übrigens ist tue eine Variable)

Kann mir jemand wo bitte sagen, wo ich damit falsch liege?

22
devforall

Es ist document.getElementById , nicht document.getElementsByID

Ich nehme an, Sie haben <input id="Tue" ...> irgendwo in Ihrem Markup.

18
Paul Dixon

Wie Sie Ihr Textfeld ansprechen, hängt vom HTML-Code ab:

<!-- 1 --><input type="textbox" id="Tue" />
<!-- 2 --><input type="textbox" name="Tue" />

Wenn Sie das Attribut 'id' verwenden:

var textbox = document.getElementById('Tue');

für 'name':

var textbox = document.getElementsByName('Tue')[0]

(Beachten Sie, dass getElementsByName () all Elemente mit dem Namen als Array zurückgibt. Daher verwenden wir [0], um auf das erste zuzugreifen.)

Verwenden Sie dann das Attribut 'value':

textbox.value = 'Foobar';
23
Ferdinand Beyer

Wenn Sie Chrome verwenden, debuggen Sie mit der Konsole. Drücken Sie UMSCHALT + STRG + j, um die Konsole auf dem Bildschirm anzuzeigen.

Vertrauen Sie mir, es hilft sehr.

5
KnightScott

Es gibt zwei Probleme in Ihrem Code.

  1. Verwenden Sie getElementByName anstelle von getElement**s**ByName
  2. verwenden Sie value in Kleinbuchstaben anstelle von Value.
5
Kalai

Klingt so, als müssten wir davon ausgehen, dass Ihr Textfeldname und Ihre ID beide auf "Di" gesetzt sind. Verwenden Sie in diesem Fall ein V in Kleinbuchstaben für .value.

4
Jeff Handley

Gibt, wie der Plural in getElementsByName() impliziert, immer eine Liste von Elementen zurück, die diesen Namen haben. Wenn Sie also ein Eingabeelement mit diesem Namen haben:

<input type="text" name="Tue">

Und es ist das erste Element mit diesem Namen. Sie müssen document.getElementsByName('Tue')[0] verwenden, um das erste Element in der Liste der Elemente mit diesem Namen abzurufen.

Daneben sind die Eigenschaften case sensitive und die korrekte Schreibweise der value-Eigenschaft ist .value.

4
Gumbo

Sie können verwenden

formname.textboxname.value="delete";
4
ChintanThummar