Ich versuche, einen Wert in einem Textfeld mit jquery mit dem folgenden Code festzulegen:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
Das Problem ist, dass dieser Code nach seiner Ausführung den Text im Textbereich nicht ändert.
Bei der Ausführung eines wird jedoch alert($("textarea#ExampleMessage").attr("value"))
der neu eingestellte Wert zurückgegeben?
Antworten:
Hast du es mit val versucht?
quelle
value
Attribut, aber das spielt keine Rolle, da beideval()
undattr('value')
in die JavaScript-Werteigenschaft schreiben. Hinweis,attr()
setzt keine HTML-Attribute! Es werden nur JavaScript-Eigenschaften festgelegt, während versucht wird, den Unterschied für Fälle wie class / className zu verbergen, in denen der Name unterschiedlich ist. Sie werden jedoch immer noch den Unterschied für Orte sehen, an denen das Attribut und die Eigenschaft unterschiedliche Aufgaben ausführen, z. B. in Formularelementen.val(foo)
funktioniert bei mir (jQuery 1.9.1). Wenn Sietext(foo)
zum Aktualisieren von Textbereichsinhalten Verluste verwenden, gehen die Zeilenumbrüche im IE verloren, wenn Sie sieval(foo)
beibehalten.Textarea hat kein Wertattribut, sein Wert kommt zwischen Tags, dh:
<textarea>my text</textarea>
es ist nicht wie das Eingabefeld (<input value="my text" />
). Deshalb funktioniert attr nicht :)quelle
$("textarea#ExampleMessage").val()
in jquery nur eine Magie.Sie sollten beachten, dass das Textarea- Tag zum Anzeigen inneres HTML verwendet und nicht wie das Eingabe-Tag im Wertattribut.
Du solltest benutzen
oder
hängt davon ab, ob Sie es als HTML-Tags oder als einfachen Text anzeigen möchten.
quelle
Oohh komm schon Jungs! es funktioniert nur mit
quelle
Ich denke das sollte funktionieren:
quelle
Ich hatte die gleiche Frage, also habe ich beschlossen, sie in den aktuellen Browsern zu versuchen (wir sind eineinhalb Jahre später nach dieser Frage), und dies (
.val
) funktioniertzum
quelle
.val()
dies in mehreren Browsern seine MagieAuf Android
.val
und.html
hat nicht funktioniert.hat den Job gemacht.
quelle
Ich hatte das gleiche Problem und diese Lösung funktionierte nicht, aber was funktionierte, war die Verwendung von HTML
quelle
html()
funktioniert nur einmal pro Textbereich, das nächste Mal möchten Sie den Inhalt dynamisch änderntextarea
,html()
wird nicht funktionieren ...$('#textarea').val(encodedtext);
Dort das Problem: Ich muss HTML-Code aus dem Inhalt eines bestimmten Div generieren. Dann muss ich diesen rohen HTML-Code in einen Textbereich einfügen. Wenn ich die Funktion $ (textarea) .val () wie folgt benutze:
oder
Ich hatte ein Problem mit einem Sonderzeichen (& '"), wenn es zwischen Anführungszeichen liegt. Wenn ich jedoch die Funktion $ (textarea) .html () verwende, ist der Text in Ordnung.
Es gibt ein Beispielformular:
Und Javascript / JQuery-Code, der nicht funktioniert, um den Textbereich zu füllen, ist:
Endlich die Lösung:
Der Trick besteht darin, Ihren Textbereich mit einem span-Tag zu versehen, um die Funktion replaceWith zu unterstützen. Ich bin mir nicht sicher, ob es sehr sauber ist, aber es funktioniert auch perfekt. Fügen Sie rohen HTML-Code in einen Textbereich ein.
quelle
textarea speichert keine Werte als
Stattdessen werden Werte in diesem Format gespeichert:
So erhalten
attr("value","someString")
Sie dieses Ergebnis:versuchen Sie es
$("#textareaid").val()
oder$("#textareaid").innerHTML
stattdessen.quelle
Textbereich hat keinen Wert. jQuery .html () funktioniert in diesem Fall
quelle
html()
funktioniert nur einmal pro Textbereich, das nächste Mal möchten Sie den Inhalt dynamisch änderntextarea
,html()
wird nicht funktionieren ...Es funktioniert für mich ... Ich habe eine Facebook-Wand gebaut ...
Hier ist die Basis meines Codes:
quelle
Um den Textbereichswert von codiertem HTML festzulegen (als HTML anzuzeigen), sollten Sie verwenden
.html( the_var )
Wie bereits erwähnt, funktioniert er möglicherweise (und wahrscheinlich) nicht, wenn Sie versuchen, ihn erneut festzulegen.Sie können dies beheben, indem Sie den Textbereich leeren
.empty()
und dann mit erneut einstellen.html( the_var )
Hier ist eine funktionierende JSFiddle: https://jsfiddle.net/w7b1thgw/2/
quelle
Ich habe es mit versucht
.val()
.text()
.html()
und hatte einige Fehler mit jQuery, um den Wert eines Textbereichs zu lesen oder festzulegen ... am Ende verwende ich native jsquelle
Wir können entweder die Methoden .val () oder .text () verwenden, um Werte festzulegen. Wir müssen Wert in val () wie val ("Hallo") setzen.
Überprüfen Sie das Beispiel hier: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
quelle
Verwenden Sie einfach die Textarea-ID nach Typ wie folgt:
quelle
Ich denke, es fehlt ein wichtiger Aspekt:
funktioniert nur, wenn ein ID-Selektor (#) vorhanden ist
Für die Klassenauswahl gibt es eine Option zur Verwendung eines nativen Werts wie:
quelle
Die akzeptierte Antwort funktioniert für mich, aber erst nachdem mir klar wurde, dass ich meinen Code ausführen musste, nachdem die Seite vollständig geladen wurde. In dieser Situation hat das Inline-Skript nicht funktioniert, da #my_form noch nicht geladen wurde.
quelle
Sie können sogar das folgende Snippet verwenden.
quelle
Als ich JQuery v1.4.4 auf der Seite hatte, funktionierte keines davon. Beim Einfügen von JQuery v1.7.1 in meine Seite hat es endlich funktioniert. In meinem Fall war es also meine JQuery-Version, die das Problem verursachte.
id ==> textareaid
======================
quelle
Ich habe
$(textarea).val/html/text(any_str_var)
alles für mich gearbeitet. Wenn Sie sicher sein möchten, dass Ihre Variable als Zeichenfolge zum Textbereich hinzugefügt wird, können Sie sich jederzeit wie folgt konzentrieren:Die Methode .val () wird definitiv im Textbereich verwendet - siehe: https://api.jquery.com/val/
Mit .html () können Sie den Inhalt eines Elements abrufen oder festlegen - siehe: https://api.jquery.com/html/#html2
.text () ist dasselbe wie .html, außer dass dies zum Festlegen von XML-Inhalten verwendet werden kann: siehe - https://api.jquery.com/text/#text-text
Sie können auch mehr darüber lesen, wie sich die einzelnen Zeichen auf Sonderzeichen mit jedem dieser Links auswirken.
quelle
Verwenden Sie einfach diesen Code und Sie haben immer den Wert:
var t = $(this); var v = t.val() || t.html() || t.text();
Also prüft es val () und setzt seinen Wert. Wenn val () eine leere Zeichenfolge, NULL, NaN os, erhält, wird nach HTML () und dann nach Text () gesucht ...
quelle
Das funktioniert:
Denken Sie daran, dass der schwierige Teil hier darin besteht, sicherzustellen, dass Sie die richtige ID verwenden. Und bevor Sie die ID verwenden, stellen Sie sicher, dass Sie sie
#
vorlegen.quelle
Die Verwendung
$("textarea#ExampleMessage").html('whatever you want to put here');
kann ein guter Weg sein, da.val()
es Probleme geben kann, wenn Sie Daten aus der Datenbank verwenden.Zum Beispiel:
Ein Datenbankfeld mit dem Namen as
description
hat den folgenden Wertasjkdfklasdjf sjklñadf
. In diesem Fall kann die Verwendung von .val () zum Zuweisen von Werten zum Textbereich eine mühsame Aufgabe sein.quelle
Ich habe versucht, value / text / html mit JQuery festzulegen, war aber nicht erfolgreich. Also habe ich folgendes versucht.
In diesem Fall habe ich ein neues Textbereichselement in ein nach erstelltes DOM eingefügt.
quelle