texte - Définir la valeur de textarea dans jQuery




jquery textarea (16)

J'essaie de définir une valeur dans un champ textarea en utilisant jquery avec le code suivant:

$("textarea#ExampleMessage").attr("value", result.exampleMessage);

Le problème est, une fois que ce code s'exécute, il ne modifie pas le texte dans la zone de texte?

Cependant lors de l'exécution d'une alert($("textarea#ExampleMessage").attr("value")) la nouvelle valeur est retournée?


Avez-vous essayé val?

$("textarea#ExampleMessage").val(result.exampleMessage);

Cela fonctionne pour moi .... J'ai construit un mur de livre de visage ...

Voici la base de mon code:

// SETS MY TEXT AREA TO EMPTY (NO VALUE)
$('textarea#message_wall').val('');

En utilisant $("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 suivante asjkdfklasdjf sjklñadf . Dans ce cas, l'utilisation de .val () pour affecter une valeur à textarea peut s'avérer fastidieuse.


J'ai essayé avec .val() .text() .html() et ai eu quelques bogues utilisant jQuery pour lire ou mettre la valeur d'un textarea ... je finis en utilisant js natif

$('#message').blur(function() {    
    if (this.value == '') { this.value = msg_greeting; }
});

J'ai eu le même problème et cette solution n'a pas fonctionné, mais ce qui a fonctionné était d'utiliser html

$('#your_textarea_id').html('some_value');

Je pense qu'il manque un aspect important:

$('#some-text-area').val('test');

Fonctionne uniquement 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:

$('.some-text-area')[0].value = 'test';

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. Quand j'utilise la fonction $ (textarea) .val () comme ceci:

$ (textarea) .val ("un certain type html <input type = 'text' value = '' style =" background: url ('http://www.w.com/bg.gif') centre repeat-x; "/> bla bla");

ou

$ ('# idTxtArGenHtml'). val ($ ('idDivMain'). html ());

J'ai eu un problème avec un caractère spécial (& '") quand ils sont entre quot. Mais quand j'utilise la fonction: $ (textarea) .html () le texte est ok.

Il y a un exemple de formulaire:

<FORM id="idFormContact" name="nFormContact" action="send.php" method="post"  >
    <FIELDSET id="idFieldContact" class="CMainFieldset">
        <LEGEND>Test your newsletter&raquo; </LEGEND> 
        <p>Send to &agrave; : <input id='idInpMailList' type='text' value='[email protected]' /></p>
        <FIELDSET  class="CChildFieldset">
            <LEGEND>Subject</LEGEND>
            <LABEL for="idNomClient" class="CInfoLabel">Enter the subject: *&nbsp</LABEL><BR/>
          <INPUT value="" name="nSubject" type="text" id="idSubject" class="CFormInput" alt="Enter the Subject" ><BR/>
    </FIELDSET>
    <FIELDSET  class="CChildFieldset">
        <INPUT id="idBtnGen" type="button" value="Generate" onclick="onGenHtml();"/>&nbsp;&nbsp;
          <INPUT id="idBtnSend" type="button" value="Send" onclick="onSend();"/><BR/><BR/>
            <LEGEND>Message</LEGEND>
                <LABEL for="idTxtArGenHtml" class="CInfoLabel">Html code : *&nbsp</LABEL><BR/>
                <span><TEXTAREA  name="nTxtArGenHtml" id="idTxtArGenHtml" width='100%' cols="69" rows="300" alt="enter your message" ></TEXTAREA></span>
        </FIELDSET>
    </FIELDSET>
</FORM>

Et le code javascript / jquery qui ne fonctionne pas pour remplir la zone de texte est:

function onGenHtml(){
  $('#idTxtArGenHtml').html( $("#idDivMain").html()  );
}

Finalement la solution:

function onGenHtml(){
  $('#idTxtArGenHtml').html( $("#idDivMain").html() );
  $('#idTxtArGenHtml').parent().replaceWith( '<span>'+$('#idTxtArGenHtml').parent().html()+'</span>');
}

L'astuce est d'enrouler votre zone de texte avec une balise span pour aider avec la fonction replaceWith. Je ne suis pas sûr que ce soit très propre, mais c'est un travail parfait aussi d'ajouter du code html brut dans une zone de texte.


La réponse acceptée fonctionne pour moi, mais seulement après avoir réalisé que je devais exécuter mon code après le chargement de la page. Dans cette situation, le script en ligne n'a pas fonctionné, je suppose que #my_form n'a pas encore été chargé.

$(document).ready(function() {
  $("#my_form textarea").val('');
});

Nous pouvons utiliser les méthodes .val () ou .text () pour définir les valeurs. nous devons mettre la valeur dans val () comme val ("bonjour").

  $(document).ready(function () {
    $("#submitbtn").click(function () {
      var inputVal = $("#inputText").val();
      $("#txtMessage").val(inputVal);
    });
  });

Vérifiez l'exemple ici: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html


Oohh viens les garçons! ça marche juste avec

$('#your_textarea_id').val('some_value');

Quand j'avais JQuery v1.4.4 dans la page, aucun de ceux-ci n'a fonctionné. Lors de l'injection de JQuery v1.7.1 dans ma page, cela a finalement fonctionné. Donc dans mon cas, c'était ma version de JQuery qui causait le problème.

id ==> textareaid

===================

var script1 = document.createElement("script");
script1.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
document.body.appendChild(script1);

var script2 = document.createElement("script"); 
script2.type = "text/javascript"; 
script2.innerHTML = "var $jq171 = $.noConflict();"; 
document.body.appendChild(script2);

$jq171('#textareaid').val('xxx');

Sur android .val et .html ne fonctionnait pas. $ ('# id'). text ("une certaine valeur") a fait le travail.


Utilisez simplement 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 () obtient une chaîne vide, NULL, NaN os, elle vérifie html () et ensuite pour text () ...


Utilisez simplement textarea Id par son type:

$("textarea#samplID").val()

textarea ne stocke pas les valeurs comme

<textarea value="someString">

à la place, il stocke les valeurs dans ce format:

<textarea>someString</textarea>

So attr("value","someString") vous obtient ce résultat:

<textarea value="someString">someOLDString</textarea>.

try $("#textareaid").val() ou $("#textareaid").innerHTML place.


$("textarea#ExampleMessage").val() dans jquery juste une magie.

Vous devriez remarquer que la balise textarea utilise html interne pour afficher et non pas dans l'attribut value tout comme la balise input.

<textarea>blah blah</textarea>
<input type="text" value="blah blah"/>

Tu devrais utiliser

$("textarea#ExampleMessage").html(result.exampleMessage)

ou

$("textarea#ExampleMessage").text(result.exampleMessage)

dépendre si vous voulez l'afficher en tant que balises html ou texte brut.





textarea