Wie würden Sie den Standardwert eines Formulars festlegen <input>
Textfeld in JavaScript?
Legen Sie den Standardwert eines Eingabefelds fest
SebastianOppermann
James
Dies ist eine Möglichkeit, dies zu tun:
document.getElementById("nameofid").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 Standard 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. Jedoch,setAttribute
wird aufgrund der Browserkompatibilität nicht empfohlen. Gibt es noch eine andere Möglichkeit?– JojOatXGME
14. Juni 2017 um 17:08 Uhr
Pepe Amödo
ich benutze 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
Runsis
2023 Antwort
Anstatt zu verwenden document.getElementById()
Sie können jetzt verwenden document.querySelector()
für verschiedene Fälle
Weitere Informationen aus einer anderen Stack Overflow-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">
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>
-
Der Grund, warum mir diese Antwort gefällt, ist, dass Sie das Attribut “name” des Formulars anstelle der DOM-Element-ID verwenden. Warum sollten Sie jeder Formulareingabe ein ID-Feld hinzufügen, wenn Sie dies nicht müssen?
– Zittern
12. Juni 2018 um 12:18 Uhr
-
@tremor stimmte voll und ganz zu, und dies ist die erste Antwort, die ich mit “name” und nicht mit “id” gefunden habe.
– Avocado
15. März 2020 um 18:23 Uhr
-
Was ist effizienter, das Abrufen des Werts nach Eingabe-ID oder nach Formular und Eingabename? Es scheint, als gäbe es nicht viele Formulare auf der Seite, aber viele Elemente.
– oCcSking
11. März 2021 um 8:34 Uhr
-
Wenn Sie Ihren Code verwenden, um den Eingabewert über das Formularelement festzulegen, wird er nicht im HTML-Code auf der Website aktualisiert. Wenn ich die Eingabe direkt anspreche, wird sie aktualisiert.
–Timo
14. Mai 2021 um 7:39 Uhr
-
Danke. document.getElementByName (“timer1”) hat bei mir nicht funktioniert, aber document.forms[‘loginform’][‘timer1’] tat.
– Eperbab
20. Februar 2022 um 12:47 Uhr
luis_laurent
Probieren Sie diese aus.
document.getElementById("current").value = 12
// or
var current = document.getElementById("current");
current.value = 12
-
Der Grund, warum mir diese Antwort gefällt, ist, dass Sie das Attribut “name” des Formulars anstelle der DOM-Element-ID verwenden. Warum sollten Sie jeder Formulareingabe ein ID-Feld hinzufügen, wenn Sie dies nicht müssen?
– Zittern
12. Juni 2018 um 12:18 Uhr
-
@tremor stimmte voll und ganz zu, und dies ist die erste Antwort, die ich mit “name” und nicht mit “id” gefunden habe.
– Avocado
15. März 2020 um 18:23 Uhr
-
Was ist effizienter, das Abrufen des Werts nach Eingabe-ID oder nach Formular und Eingabename? Es scheint, als gäbe es nicht viele Formulare auf der Seite, aber viele Elemente.
– oCcSking
11. März 2021 um 8:34 Uhr
-
Wenn Sie Ihren Code verwenden, um den Eingabewert über das Formularelement festzulegen, wird er nicht im HTML-Code auf der Website aktualisiert. Wenn ich die Eingabe direkt anspreche, wird sie aktualisiert.
–Timo
14. Mai 2021 um 7:39 Uhr
-
Danke. document.getElementByName (“timer1”) hat bei mir nicht funktioniert, aber document.forms[‘loginform’][‘timer1’] tat.
– Eperbab
20. Februar 2022 um 12:47 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">
Ich wollte nur darauf hinweisen, dass je nach
type
Ihres Eingabefeldes, it nicht dürfen zulassen, dass der Wert festgelegt wird, wenn es sich um eine Datei handelt. Siehe diese Frage: stackoverflow.com/questions/61750165/…– smac89
16. September 2022 um 22:48 Uhr