So ändern Sie den Inhalt eines <Textbereichs> mit Javascript


139

Wie würde ich den Inhalt eines <textarea>Elements mit JavaScript ändern ?

Ich möchte es leer machen.

Antworten:


244

So was:

document.getElementById('myTextarea').value = '';

oder so in jQuery:

$('#myTextarea').val('');

Wo du hast

<textarea id="myTextarea" name="something">This text gets removed</textarea>

Für alle Downvoter und Ungläubigen:


Ich hätte nicht gedacht, dass Wert funktionieren würde, weil es keinen gibt. value = drin aber danke!
ian

1
funktioniert nicht im Internet Explorer auf Windows Mobile-Geräten.
Paul

9
funktioniert nicht mit Chrome V61, der Wert wirkt sich nicht auf das Eingabefeld aus
Aero Wang

15

Wenn Sie jQuery verwenden können, und ich empfehle Ihnen dringend, dies zu tun, würden Sie dies einfach tun

$('#myTextArea').val('');

Ansonsten ist es browserabhängig. Vorausgesetzt, Sie haben

var myTextArea = document.getElementById('myTextArea');

In den meisten Browsern tun Sie dies

myTextArea.innerHTML = '';

Aber in Firefox tun Sie das

myTextArea.innerText = '';

Das Herausfinden, welchen Browser der Benutzer verwendet, bleibt dem Leser als Übung. Es sei denn, Sie verwenden natürlich jQuery;)

Edit : Ich nehme das zurück. Die Unterstützung für .innerHTML in Textbereichen scheint sich verbessert zu haben. Ich habe in Chrome, Firefox und Internet Explorer getestet, alle haben den Textbereich korrekt gelöscht.

Bearbeiten 2 : Und ich habe gerade überprüft, ob Sie .val ('') in jQuery verwenden, es setzt nur die .value-Eigenschaft für Textbereiche. Der Wert sollte also in Ordnung sein.


3
.value = ''; funktioniert in Chrome FF und Safari ... .innerHTML funktioniert nicht in Chrome wurde in anderen nicht getestet.
ian

1
Sie sollten innerHTML und innerText nicht für Textbereiche verwenden. Das value-Attribut sollte verwendet werden. Also ist $ ('# myTextArea'). Val ('') oder document.getElementById ('myTextArea'). Value = '' die beste Option
Parth

8

Obwohl bereits viele richtige Antworten gegeben wurden, würde der klassische Ansatz (Nicht-DOM lesen) folgendermaßen aussehen:

document.forms['yourform']['yourtextarea'].value = 'yourvalue';

Wo im HTML Ihr Textbereich irgendwo in einer Form wie dieser verschachtelt ist:

<form name="yourform">
    <textarea name="yourtextarea" rows="10" cols="60"></textarea>
</form>

Und das würde natürlich auch mit Netscape Navigator 4 und Internet Explorer 3 funktionieren . Und nicht unwichtig, Internet Explorer auf Mobilgeräten.



2

Fügen Sie den Textbereich in ein Formular ein, benennen Sie ihn und verwenden Sie die dom-Objekte einfach wie folgt:

<body onload="form1.box.value = 'Welcome!'">
  <form name="form1">
    <textarea name="box"></textarea>
  </form>
</body>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.