9
votes

JQuery: .val () ne fonctionne pas pour textarea

J'essaie de lire le contenu d'un textarea, mais .val () ne fonctionne pas pour mon Texarea. Je serais heureux, si quelqu'un a une solution pour moi. Voici mon code:

html: xxx

js: xxx

merci!


6 commentaires

Peut-être que vous avez un autre élément avec id = "Détails" dans votre page?


.val () travaille sur Texareas, vérifiez si votre orthographe a raison et n'en avez pas de "," sur le dernier paramètre


.val () fonctionne bien en ce sens que la valeur réelle du Textarea est renvoyée. Définir "ne fonctionne pas"?


Cela fonctionne simplement bien, le problème est ailleurs dans votre code. Quelle erreur vous obtenez? Quelle valeur exacte vous obtenez?


Je vais deviner ici - peut-être que vous pensez que cela "ne fonctionne pas" parce que vous perdez la mise en forme de la ligne? C'est parce que la nouvelle ligne dans Textarea est un caractère spécial tout en HTML, il s'agit de la balise
- Vous devez remplacer \ n avec
< / Code> Pour préserver le formatage lors de l'affichage dans HTML.


ne fonctionne pas signifie que $ ('# détails'). Val () redonne la valeur "non définie"


8 Réponses :


6
votes

val () fonctionne juste bien ... Vous devez avoir votre erreur ailleurs.

exemple

Probablement votre sélecteur en cas de correspondance. Vérifiez que les typos et si vous avez appliqué le préfixe correct ( # pour id ou . pour la classe)


2 commentaires

ne fonctionne pas signifie que $ ('# détails'). Val () redonne la valeur "non définie"


@ user1571064 Ensuite, votre sélecteur est incorrect. $ ('# Détails') renvoie une collection de jQuery vide et .val () retournera donc non défini .



0
votes

Détails: Encodéuricomponent ($ ('# Détails'). Val ())


0 commentaires

4
votes

Ceci est une demande valide, car j'ai vécu ce même problème et peut signaler les éléments suivants:

  • non - ce n'est pas le sélecteur, un objet valide est renvoyé
  • non - il n'y a qu'un seul élément avec cet identifiant
  • non - il n'y a pas d'utilisation de HTML ou de mauvaise balise non valide aussi loin que j'ai vu

    Oui - Il y a une réponse qui n'est pas un piratage ou un mauvais code: xxx


0 commentaires

3
votes

J'ai eu le même problème. La solution dans mon cas était, l'ID "commentaire" était deux éléments. La jQuery a renvoyé la valeur du premier, qui était vide. Si j'ai examiné le code source, je n'y ai vu qu'un seul, puisque la seconde a été ajoutée après un appel Ajax. Mais quand est recherché dans l'inspecteur pour "commentaire" (y compris les citations), j'ai vu les deux éléments. J'espère que cela vous aide aussi.


0 commentaires

2
votes

Étrangement, j'ai eu un problème similaire qui tente de vider tout Texareeas. Ce n'était pas un problème de sélecteur alors que je sélectionnais tout Texaree sur la page avec $ («Textarea»). J'ai trouvé que les suivants ont fonctionné: $ ('textarea'). Texte ('');

Vous pouvez donc essayer de définir le Texarea avec: $ ("textarea"). Texte ("ma nouvelle valeur ');


2 commentaires

Vous la légende! Merci


Juste au cas moi-même d'un univers parallèle lit ceci: Si vous ne vous inquiétez pas d'essayer $ («textarea») (ou de l'obtenir avec #ide ) ou tout autre méthode "directe" parce que vous do avez un objet jQuery "apparemment parfaitement valide" que vous avez obtenu via une autre manière du rond-point (par exemple, $ parentelement.children ("Textarea"). Premier () ) Je vous dis: arrêter de perdre du temps et trouver l'objet aussi directement que possible, parfois .val ('') mettra à jour la valeur en mémoire mais pas dans le DOM, n'essayez pas de Trouvez une alternative, faites cela.



1
votes

Mon problème était celui que j'utilisais un sélecteur de nom au lieu d'un sélecteur d'identifiant.

IE: p>

travaux: p> xxx pré>

T Travailler: P>

'content' : $(this).find('input[name=text_content]').val(),


1 commentaires

Était juste dans le même bateau ... La commutation du même sélecteur de noms sur les valeurs d'identification Fabriqué Val () Commencez à travailler sur le champ Texarea.



0
votes

Cliquez avec le bouton droit de la souris sur TextareaFor et sélectionnez Inspecter. Utilisez l'ID généré par votre navigateur, pour une raison quelconque, il génère son propre identifiant pour Textarea, même si vous le spécifiez dans HTMLATtributes. dans du code: @ Html.textareafor (Modèle => Model.PendingRUserDto.PendingSainotes, Nouveau {htmlattributes = nouveau {@class = "formulaire-contrôle", id = "pendusernotes"}}) Dans la fenêtre d'inspecter: Notes de test


1 commentaires

C'est ce qui était dans la fenêtre d'inspection: textarea cols = "20" htmlattributes = "{classe = formulaire-contrôle, id = pendringsernotes}" id = "pendriers" Nom = "row =" row = "2"



0
votes

val () fonctionne bien. Vous obtenez le paramètre n'est pas correct.

htmlcode xxx

code JavaScript xxx


0 commentaires