J'essaie de définir une valeur dans un champ de zone de texte à l'aide de jquery avec le code suivant:
$("textarea#ExampleMessage").attr("value", result.exampleMessage);
Le problème est qu'une fois ce code exécuté, il ne modifie pas le texte dans la zone de texte?
Cependant, lors de l'exécution d'un, alert($("textarea#ExampleMessage").attr("value"))
la nouvelle valeur définie est renvoyée?
Réponses:
Avez-vous essayé val?
la source
value
attribut HTML , mais cela n'a pas d'importance, car les deuxval()
etattr('value')
écrivent dans la propriété de valeur JavaScript. Remarque,attr()
ne définit pas d' attributs HTML! Il définit uniquement les propriétés JavaScript, tout en essayant de masquer la différence pour les cas tels que class / className où le nom est différent. Mais vous verrez toujours la différence pour les endroits où l'attribut et la propriété font des choses différentes, comme dans les éléments de formulaire.val(foo)
fonctionne pour moi (jQuery 1.9.1). L'utilisation detext(foo)
perd pour mettre à jour le contenu de la zone de texte perd les sauts de ligne sur IE, en lesval(foo)
préservant.Textarea n'a pas d'attribut value, sa valeur se situe entre les balises, c'est à dire:,
<textarea>my text</textarea>
ce n'est pas comme le champ de saisie (<input value="my text" />
). C'est pourquoi attr ne fonctionne pas :)la source
$("textarea#ExampleMessage").val()
en jquery juste une magie.Vous devriez remarquer que la balise textarea utilise le HTML interne pour afficher et non dans l'attribut value comme la balise d'entrée.
Tu devrais utiliser
ou
dépend si vous souhaitez l'afficher sous forme de balises html ou de texte brut.
la source
Oohh allez les garçons! ça marche juste avec
la source
Je pense que cela devrait fonctionner:
la source
j'avais la même question donc j'ai 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 cela (
.val
) fonctionnepour
la source
.val()
cela fera sa magie dans plusieurs navigateurs;)Sur Android
.val
et.html
n'a pas fonctionné.a fait le travail.
la source
J'ai eu le même problème et cette solution n'a pas fonctionné mais ce qui a fonctionné a été d'utiliser du HTML
la source
html()
ne fonctionne qu'une seule fois par zone de texte, la prochaine fois, vous voulez changer dynamiquement le contenu detextarea
,html()
ne fonctionnera pas ...$('#textarea').val(encodedtext);
Là, le problème: j'ai besoin de générer du code html à partir du contenu d'un div donné. Ensuite, je dois mettre ce code html brut dans une zone de texte. Lorsque j'utilise la fonction $ (textarea) .val () comme ceci:
ou
J'ai rencontré un problème avec certains caractères spéciaux (& '") lorsqu'ils se trouvent entre guillemets. Mais lorsque j'utilise la fonction: $ (textarea) .html (), le texte est correct.
Il y a un exemple de formulaire:
Et le code javascript / jquery qui ne fonctionne pas pour remplir la zone de texte est:
Enfin la solution:
L'astuce consiste à envelopper votre zone de texte avec une balise span pour vous aider avec la fonction replaceWith. Je ne sais pas si c'est très propre, mais cela fonctionne parfaitement aussi ajoutez du code html brut dans une zone de texte.
la source
textarea ne stocke pas les valeurs sous
à la place, il stocke les valeurs dans ce format:
Alors
attr("value","someString")
vous obtient ce résultat:essayez
$("#textareaid").val()
ou à la$("#textareaid").innerHTML
place.la source
La zone de texte n'a pas de valeur. jQuery .html () fonctionne dans ce cas
la source
html()
ne fonctionne qu'une seule fois par zone de texte, la prochaine fois, vous voulez changer dynamiquement le contenu detextarea
,html()
ne fonctionnera pas ...Cela fonctionne pour moi .... J'ai construit un mur de livre de visage ...
Voici la base de mon code:
la source
Pour définir la valeur de la zone de texte du code HTML codé (pour afficher en HTML), vous devez utiliser,
.html( the_var )
mais comme mentionné si vous essayez de le définir à nouveau, cela peut (et probablement) ne fonctionnera pas.Vous pouvez résoudre ce problème en vidant la zone de texte
.empty()
, puis en la définissant à nouveau avec.html( the_var )
Voici un JSFiddle fonctionnel: https://jsfiddle.net/w7b1thgw/2/
la source
J'ai essayé avec
.val()
.text()
.html()
et j'ai eu quelques bogues en utilisant jQuery pour lire ou définir la valeur d'une zone de texte ... je finis par utiliser js natifla source
Nous pouvons utiliser les méthodes .val () ou .text () pour définir des valeurs. nous devons mettre de la valeur dans val () comme val ("bonjour").
Consultez l'exemple ici: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
la source
Utilisez simplement Textarea Id par son type comme celui-ci:
la source
Je pense qu'il manque un aspect important:
ne fonctionne que lorsqu'il y a un sélecteur d'ID (#)
pour le sélecteur de classe, il existe une option pour utiliser une valeur native comme:
la source
La réponse acceptée fonctionne pour moi, mais seulement après avoir réalisé que je devais exécuter mon code une fois le chargement de la page terminé. Dans cette situation, le script en ligne n'a pas fonctionné, je suppose que #my_form n'a pas encore terminé le chargement.
la source
Vous pouvez même utiliser l'extrait ci-dessous.
la source
Lorsque j'avais JQuery v1.4.4 dans la page, ni l'un ni l'autre ne fonctionnait. Lors de l'injection de JQuery v1.7.1 dans ma page, cela a finalement fonctionné. Donc, dans mon cas, c'est ma version JQuery qui causait le problème.
id ==> textareaid
======================
la source
J'ai utilisé
$(textarea).val/html/text(any_str_var)
tout a fonctionné pour moi. Si vous voulez être sûr que votre variable sous forme de chaîne est ajoutée à la zone de texte, vous pouvez toujours concatier comme ceci:La méthode .val () est définitivement utilisée sur la zone de texte - voir: https://api.jquery.com/val/
.html () peut être utilisé pour obtenir ou définir le contenu de n'importe quel élément - voir: https://api.jquery.com/html/#html2
.text () est identique à .html sauf que cela peut être utilisé pour définir le contenu XML: voir - https://api.jquery.com/text/#text-text
Vous pouvez également en savoir plus sur la façon dont chacun agit sur les caractères spéciaux avec chacun de ces liens.
la source
Utilisez simplement ce code et vous aurez toujours la valeur:
var t = $(this); var v = t.val() || t.html() || t.text();
Il va donc vérifier val () et définir sa valeur. Si val () obtient une chaîne vide, NULL, NaN, il vérifiera html () puis text () ...
la source
Cela marche:
N'oubliez pas que la partie la plus délicate ici consiste à vous assurer que vous utilisez le bon ID. Et avant d'utiliser l'ID, assurez-vous de le mettre
#
avant.la source
L'utilisation
$("textarea#ExampleMessage").html('whatever you want to put here');
peut être un bon moyen, car il.val()
peut y 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é as
description
a la valeur suivanteasjkdfklasdjf sjklñadf
. Dans ce cas, l'utilisation de .val () pour attribuer une valeur à la zone de texte peut être une tâche fastidieuse.la source
J'ai essayé de définir la valeur / text / html à l'aide de JQuery mais n'a pas réussi. J'ai donc essayé ce qui suit.
Dans ce cas, j'injectais un nouvel élément textarea à un DOM créé.
la source