Wie würden Sie den Standardwert eines Formulars festlegen <input>
Textfeld in JavaScript?
Legen Sie den Wert eines Eingabefelds fest
SebastianOppermann
James
Dies ist eine Möglichkeit, dies zu tun:
document.getElementById("mytext").value = "My value";
-
Ich werde, gibt es eine Möglichkeit, den Wert NULL zu machen, wenn der Benutzer auf das Feld klickt?
– SebastianOppermann
30. September 2011 um 10:46 Uhr
-
Ja, weisen Sie dem Eingabefeld einen Event-Handler zu, der den Wert onclick löscht. Beispiel: elem.onclick = clearField(); // das würde auf eine Funktion verweisen, die das Feld löscht, indem der Wert auf nichts gesetzt wird, ähnlich wie in der obigen Antwort.
– James
30. September 2011 um 10:48 Uhr
-
bei mir hat es nicht funktioniert. Wird das obige das Wertattribut erstellen?
– Dchris
22. März 2014 um 11:44 Uhr
-
Dies scheint nicht zu funktionieren, wenn Sie versuchen, den Wert für das Eingabe-Tag selbst zu ändern. Zur Verdeutlichung: Wenn ich eine Schaltfläche habe, die ihren Wert ändern soll, wenn darauf geklickt wird, scheine ich sie nicht ändern zu können, auch nicht durch “this.parentNode.getElementByTagName(‘input’).style.display=’none ‘;” noch durch Verwendung von this.style.display=’none’; Außerdem habe ich sogar versucht, “.style = display: none;’;” ohne erfolg…
– MahNas92
5. August 2016 um 19:00 Uhr
-
Diese und andere Antworten auf die obige Frage scheinen das zu ignorieren Ursprünglich Wert geändert werden soll. Verwenden
.value = ...
ändert nur den aktuellen Wert. Zurücksetzen des Formulars (mit<input type="reset" />
zum Beispiel) ändert den Wert wieder auf den ursprünglichen Wert. Im Gegensatz,setAttribute("value", ...)
funktioniert einwandfrei in Firefox und Chrome. Der Standardwert wird geändert, aber der tatsächliche Wert wird nur geändert, wenn der Benutzer ihn nicht bereits geändert hat. Aber,setAttribute
wird aufgrund der Browserkompatibilität nicht empfohlen. Gibt es noch eine andere Möglichkeit?– JojOatXGME
14. Juni 2017 um 17:08 Uhr
Ich verwende die Funktion ‘setAttribute’:
<input type="text" id="example"> // Setup text field
<script type="text/javascript">
document.getElementById("example").setAttribute('value','My default value');
</script>
-
value
sollte direkt mit Punktnotation aufgerufen werden: developer.mozilla.org/en-US/docs/Web/API/Element.setAttribute Sie verwenden set/getAttribute nur, um mit dem ursprünglichen Wert umzugehen. Nachdem DOM geladen wurde,.value
stellt den tatsächlichen Arbeitswert des Elements dar.– Chris Baker
15. September 2014 um 20:06 Uhr
-
@ChrisBaker Ich würde diese Antwort +1000, wenn ich könnte. Ich habe eine Drittanbieter-App, die Eingabefelder scannt, um die Anwendung zu automatisieren (meine Seite wird in einem eingebetteten Steuerelement gerendert). Dies ist ein einzigartiges Szenario, in dem Eingabefelder von der App des Clients verwendet werden. Eingabefelder wurden nicht sofort nach dem Postback mit .value in meiner Document-Ready-Funktion zurückgesetzt. Wenn ich ein nachfolgendes asynchrones Postback hatte, das der Benutzer initiierte, würde es diese Eingabewerte wiederverwenden, um etwas zu automatisieren, auf das sie zuvor geklickt hatten, und ich brauchte die Seite, um sie zu „vergessen“. Das ist die hackige magische Sauce, die ich brauchte. Danke Pepe und Chris!
– MikeTeeVee
16. August 2016 um 16:22 Uhr
-
Ich verwende Yii 2.0 und das direkte Setzen von .value = ” würde die Formularvalidierung für das Feld nicht richtig ausführen. Die Verwendung von setAttribute(‘value’,’…’) wird ordnungsgemäß gehandhabt. Danke!
– ekscrypto
27. Februar 2017 um 13:33 Uhr
-
Ich habe ein seltsames Problem, das mit gelöst wurde
setAttribute
. Mein Problem bestand darin, den Wert einer Eingabe durch einen Funktionsaufruf zu ändern und auch die zuletzt geänderten Eingaben zu ändern.– SAMPro
19. April 2018 um 21:43 Uhr
-
Ich konnte den Wert nur mit dieser Antwort auf eine modale Popup-Eingabe (Text) setzen. .Wert hat bei mir nicht funktioniert. Danke
– Ulla
23. April 2018 um 7:00 Uhr
wenn Ihr Formular ein Eingabefeld wie enthält
<input type="text" id='id1' />
dann können Sie den Code wie unten angegeben in Javascript schreiben, um seinen Wert als festzulegen
document.getElementById('id1').value="text to be displayed" ;
-
HILFE! Ich mache es, aber der Wert ändert sich immer wieder auf den ursprünglichen Wert, sobald ich auf ein anderes Feld klicke oder auf eine beliebige Schaltfläche auf der Seite klicke. Dies ist die Website, die ich mache (mit der Klasse “_56AraZ”) shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F Kann mir jemand zeigen, wie ich den Wert wirklich festlegen kann, um die Anmeldung auf dieser Website zu automatisieren?
– Zui Zui
28. Februar 2021 um 0:23 Uhr
Wenn Sie mehrere Formulare verwenden, können Sie Folgendes verwenden:
<form name="myForm">
<input type="text" name="name" value="">
</form>
<script type="text/javascript">
document.forms['myForm']['name'].value = "New value";
</script>
dallinchase
Probieren Sie diese aus.
document.getElementById("current").value = 12
// or
var current = document.getElementById("current");
current.value = 12
-
Legen Sie in solchen Feldern niemals Nicht-Text-Werte fest. Wenn Sie zurücklesen, lesen Sie in einigen Browsern eine Zeichenfolge (!)
– Buchsenpaar
4. April 2014 um 14:21 Uhr
-
HILFE! Ich mache es, aber der Wert ändert sich immer wieder auf den ursprünglichen Wert, sobald ich auf ein anderes Feld klicke oder auf eine beliebige Schaltfläche auf der Seite klicke. Dies ist die Website, die ich mache (mit der Klasse “_56AraZ”) shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F Kann mir jemand zeigen, wie ich den Wert wirklich festlegen kann, um die Anmeldung auf dieser Website zu automatisieren?
– Zui Zui
28. Februar 2021 um 0:23 Uhr
Antwort 2021
Anstatt zu verwenden document.getElementById()
Sie können jetzt verwenden document.querySelector()
für verschiedene Fälle
Weitere Informationen aus einer anderen StackOverflow-Antwort:
querySelector
lässt Sie Elemente mit Regeln finden, die nicht mit ausgedrückt werden könnengetElementById
undgetElementsByClassName
BEISPIEL:
document.querySelector('input[name="myInput"]').value="Whatever you want!";
oder
let myInput = document.querySelector('input[name="myInput"]');
myInput.value="Whatever you want!";
Prüfen:
document.querySelector('input[name="myInput"]').value="Whatever you want!";
<input type="text" name="myInput" id="myInput" placeholder="Your text">
-
Legen Sie in solchen Feldern niemals Nicht-Text-Werte fest. Wenn Sie zurücklesen, lesen Sie in einigen Browsern eine Zeichenfolge (!)
– Buchsenpaar
4. April 2014 um 14:21 Uhr
-
HILFE! Ich mache es, aber der Wert ändert sich immer wieder auf den ursprünglichen Wert, sobald ich auf ein anderes Feld klicke oder auf eine beliebige Schaltfläche auf der Seite klicke. Dies ist die Website, die ich mache (mit der Klasse “_56AraZ”) shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F Kann mir jemand zeigen, wie ich den Wert wirklich festlegen kann, um die Anmeldung auf dieser Website zu automatisieren?
– Zui Zui
28. Februar 2021 um 0:23 Uhr
Alexander Johannsen
Die Antwort ist wirklich einfach
// Your HTML text field
<input type="text" name="name" id="txt">
//Your javascript
<script type="text/javascript">
document.getElementById("txt").value = "My default value";
</script>
Oder wenn Sie JavaScript ganz vermeiden möchten: Sie können es einfach über HTML definieren
<input type="text" name="name" id="txt" value="My default value">
-
Erstaunlich, dass nur eine Person hier vorgeschlagen hat, die zu verwenden
value
Attribut …– Algy Taylor
15. Januar 2018 um 15:12 Uhr
-
@AlgyTaylor weiß Ihre Bemühungen zu schätzen und danke Ihnen für Ihren wunderbaren Kommentar
– PHP-Coder
20. Januar 2018 um 12:34 Uhr