Définir la valeur du textarea en jQuery
Je suis tenté de mettre une valeur dans un champ de type textarea à l'aide de jquery avec le code suivant:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
La question est, une fois que ce code s'exécute, il n'est pas modifier le texte dans le textarea?
Cependant lors de l'exécution d'un alert($("textarea#ExampleMessage").attr("value"))
la nouvelle valeur est renvoyée?
- Si le jQuery, la magie n'est pas en train de mettre au val() sur <textarea>, et vous êtes ciblage par ID, les chances sont qu'il ya plusieurs éléments avec le même ID.
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé de val?
value
attribut, mais qui n'a pas d'importance, parce que les deuxval()
etattr('value')
écrire le code JavaScript de la valeur de la propriété. Remarque,attr()
n' pas définir les attributs HTML! Il définit uniquement les propriétés JavaScript, tout en essayant de masquer la différence pour les cas comme classe/className où le nom est différent. Mais vous pourrez tout de même voir la différence pour les endroits où l'attribut et de la propriété de faire des choses différentes, comme dans les éléments de formulaire.html("...")
etattr("innerText", "...")
ainsi.val(foo)
fonctionne pour moi (jQuery 1.9.1). À l'aide detext(foo)
perd de mettre à jour textarea contenu perd les retours à la ligne (sur IE, à l'aideval(foo)
conserve.textarea
ne permettra pas de répondre à$("textarea").on('change keyup paste',function(e) {})
événements lorspaste
. Mais il sera déclenché par le$('textarea').trigger('change');
Textarea n'a pas de valeur d'attribut, sa valeur vient entre les balises, j'.e:
<textarea>my text</textarea>
, ce n'est pas comme le champ de saisie (<input value="my text" />
). C'est pourquoi attr ne fonctionne pas 🙂$("textarea#ExampleMessage").val()
en jquery juste de la magie.Vous devriez noter que textarea balise à l'aide de intérieure html pour afficher et pas dans la valeur de l'attribut comme balise d'entrée.
Vous devez utiliser
ou
dépendra de si vous voulez l'afficher que les balises html ou texte brut.
Oohh venir sur les garçons! il fonctionne avec
Je pense que cela devrait fonctionner :
j'ai eu la même question, j'ai donc décidé de l'essayer dans les navigateurs actuels (nous sommes un an et demi plus tard dans le temps après cette question), et ce (
.val
) fonctionnepour
.val()
fera sa magie dans plusieurs navigateurs 😉J'ai eu le même problème et cette solution n'a pas fonctionné, mais ce qui a fonctionné a été d'utiliser le html
html()
fonctionne qu'une seule fois par textarea, la prochaine fois, vous souhaitez modifier dynamiquement le contenu detextarea
,html()
ne fonctionnera pas...$('#textarea').val(encodedtext);
Sur android
.val
et.html
n'a pas fonctionné.a fait le travail.
Là le problème : j'ai besoin de générer du code html à partir de ce que contient un div. Ensuite, je dois mettre ce code html brut dans un textarea. Lorsque j'utilise la fonction $(textarea).val() comme ceci :
ou
J'ai eu des problème avec un caractère spécial ( &"" ) quand ils sont entre de l'être". Mais quand j'utilise la fonction :
$(textarea).html() le texte est ok.
Il y a un exemple de formulaire :
Et javascript/jquery code qui ne fonctionne pas à remplir le textarea est :
Enfin la solution :
L'astuce est de conclure votre textarea avec une balise span aider à la remplaceavec fonction.
Je ne sais pas si c'est très propre, mais c'est un travail parfait aussi ajouter raw code html dans un textarea.
textarea ne stocke pas les valeurs que
au lieu de cela, il stocke les valeurs dans ce format:
Donc
attr("value","someString")
vous obtient ce résultat:essayer
$("#textareaid").val()
ou$("#textareaid").innerHTML
à la place.Zone de texte n'est pas d'avoir de la valeur. jQuery .html() fonctionne dans ce cas,
html()
fonctionne qu'une seule fois par textarea, la prochaine fois, vous souhaitez modifier dynamiquement le contenu detextarea
,html()
ne fonctionnera pas...Cela fonctionne pour moi....
J'ai construit un mur face book...
Voici la base de mon code:
Pour définir textarea valeur codée en HTML (pour l'afficher au format HTML), vous devez utiliser
.html( the_var )
mais comme mentionné, si vous essayez à nouveau, il peut (et a probablement) ne fonctionnera pas.Vous pouvez résoudre ce problème en vidant le textarea
.empty()
et puis en fixant de nouveau avec.html( the_var )
Voici un travail JSFiddle:
https://jsfiddle.net/w7b1thgw/2/
JS:
HTML:
J'ai essayé avec
.val()
.text()
.html()
et avait quelques bugs à l'aide de jQuery pour lire ou de définir la valeur d'un textarea... je endup à l'aide de code jsNous pouvons utiliser .val() ou .texte() les méthodes pour définir les valeurs. nous avons besoin de mettre en valeur l'intérieur de val() comme val("bonjour").
Vérifier exemple ici: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
La accepté de répondre fonctionne pour moi, mais seulement après que j'ai réalisé que j'avais à exécuter mon code après que la page a fini de charger. Dans cette situation de script en ligne ne fonctionne pas, j'imagine, parce que #my_form n'a pas fini de se charger encore.
Vous pouvez même utiliser l'extrait de code ci-dessous.
Quand j'ai eu JQuery v1.4.4 dans la page, ni l'un ni travaillé. Lors de l'injection de JQuery v1.7.1 dans ma page, il a travaillé, enfin. Donc dans mon cas, c'était mon JQuery version qui a été à l'origine du problème.
id ==> textareaid
======================
Juste textarea Id par son type comme lui:
Suffit d'utiliser ce code, et vous aurez toujours la valeur:
var t = $(this);
var v = t.val() || t.html() || t.text();
Donc il va vérifier val() et définir sa valeur. Si val() retourne une chaîne vide, NULL, NaN o.s. il va vérifier html() et puis pour le texte()...
Cela fonctionne:
Rappelez-vous, la partie la plus délicate ici est de s'assurer que vous utilisez la bonne ID.
Et avant d'utiliser l'ID assurez-vous de mettre
#
avant.À l'aide de
$("textarea#ExampleMessage").html('whatever you want to put here');
peut être un bon moyen, car.val()
peut avoir des problèmes lorsque vous utilisez des données de la base de données.Par exemple:
Un champ de base de données nommé comme
description
a la valeur suivanteasjkdfklasdjf sjklñadf
. Dans ce cas, l' .val() pour attribuer de la valeur à textarea peut être un travail fastidieux.Je pense qu'il manque un aspect important:
ne fonctionne que quand il y a un sélecteur d'ID (#)
pour sélecteur de classe il y a une option pour utiliser la valeur native comme: