Domanda

Sto tentando di impostare un valore in un campo textarea utilizzando jquery con il seguente codice:

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

Il problema è che, una volta eseguito questo codice, non sta alterando il testo nell'area di testo?

Tuttavia quando si esegue un alert($("textarea#ExampleMessage").attr("value")) viene restituito il valore appena impostato?

È stato utile?

Soluzione

Hai provato val?

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

Altri suggerimenti

Textarea non ha alcun attributo value, il suo valore è tra i tag, ovvero: <textarea>my text</textarea>, non è come il campo di input (<input value="my text" />). Ecco perché attr non funziona :)

$("textarea#ExampleMessage").val() in jquery solo una magia.

Dovresti notare che il tag textarea utilizza html interno per visualizzare e non nell'attributo value proprio come il tag input.

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

Dovresti usare

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

o

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

dipende se si desidera visualizzarlo come tag html o testo normale.

Ooh, andiamo ragazzi! funziona solo con

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

Penso che dovrebbe funzionare:

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

Ho avuto la stessa domanda, quindi ho deciso di provarlo nei browser attuali (siamo passati un anno e mezzo dopo questa domanda) e questo (.val) funziona

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

per

  • IE8
  • FF 3.6
  • FF4
  • Opera 11
  • Chrome 10

Ho avuto lo stesso problema e questa soluzione non ha funzionato, ma quello che ha funzionato è stato l'uso di HTML

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

Su Android .val e .html non funzionavano.

$('#id').text("some value")

ha fatto il lavoro.

Ecco il problema: ho bisogno di generare il codice html dal contenuto di un dato div. Quindi, devo mettere questo codice HTML grezzo in una textarea. Quando uso la funzione $ (textarea) .val () in questo modo:

  

$ (textarea) .val (" alcuni html come < input   type = 'text' value = '' style = " background: url ('http://www.w.com/bg.gif') repeat-x center; " / Gt &; bla bla ");

o

  

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

Ho avuto problemi con alcuni caratteri speciali (& amp; '") quando sono tra quot. Ma quando uso la funzione:  $ (textarea) .html () il testo è ok.

Esiste un modulo di esempio:

<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='youremail@gmail.com' /></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>

E il codice javascript / jquery che non funziona per riempire l'area di testo è:

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

Finalmente la soluzione:

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

Il trucco è avvolgere la tua textarea con un tag span per aiutare con la funzione replaceWith. Non sono sicuro che sia molto pulito, ma funziona perfettamente e aggiungi anche codice HTML grezzo in una textarea.

textarea non memorizza i valori come

<textarea value="someString">

invece, memorizza i valori in questo formato:

<textarea>someString</textarea>

Quindi attr("value","someString") ti dà questo risultato:

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

prova $("#textareaid").val() o $("#textareaid").innerHTML invece.

Textarea non ha valore. jQuery .html () funziona in questo caso

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

Funziona per me .... Ho costruito un muro del face book ...

Ecco la base del mio codice:

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

Per impostare il valore textarea dell'HTML codificato (da mostrare come HTML) dovresti usare .html( the_var ) ma come detto se provi a reimpostarlo, potrebbe (e probabilmente) non funzionare.

Puoi risolvere questo problema svuotando l'area di testo .empty() e quindi impostandola di nuovo con <=>

Ecco un JSFiddle funzionante: https://jsfiddle.net/w7b1thgw/2/

jQuery(function($){
    
    $('.load_html').click(function(){
        var my_var = $(this).data('my_html');
        $('#dynamic_html').html( my_var ); 
    });
    
    $('#clear_html').click(function(){
        $('#dynamic_html').empty(); 
    });
    
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<textarea id="dynamic_html"></textarea>
<a id="google_html" class="load_html" href="#" data-my_html="&lt;a href=&quot;google.com&quot;&gt;google.com&lt;/a&gt;">Google HTML</a>
<a id="yahoo_html" class="load_html" href="#" data-my_html="&lt;a href=&quot;yahoo.com&quot;&gt;yahoo.com&lt;/a&gt;">Yahoo HTML</a>
<a id="clear_html" href="#">Clear HTML</a>

Ho provato con .val() .text() .html() e ho riscontrato alcuni bug usando jQuery per leggere o impostare il valore di un'area di testo ... ho finito usando js nativo

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

Possiamo usare i metodi .val () o .text () per impostare i valori. dobbiamo mettere il valore dentro val () come val (" ciao ").

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

Controlla l'esempio qui: http: // www. codegateway.com/2012/03/set-value-to-textarea-jquery.html

La risposta accettata funziona per me, ma solo dopo aver realizzato che dovevo eseguire il mio codice dopo che il caricamento della pagina era terminato. In questa situazione, lo script inline non ha funzionato, suppongo perché #my_form non è stato ancora caricato.

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

Puoi persino utilizzare lo snippet di seguito.

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

Quando avevo JQuery v1.4.4 nella pagina, nessuno di questi ha funzionato. Quando ho iniettato JQuery v1.7.1 nella mia pagina, ha funzionato finalmente. Quindi nel mio caso, è stata la mia versione di JQuery a causare il problema.

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');

Usa semplicemente ID textarea del suo tipo come questo:

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

Usa questo codice e avrai sempre il valore:

var t = $(this); var v = t.val() || t.html() || t.text();

Quindi controllerà val () e imposterà il suo valore. Se val () ottiene una stringa vuota, NULL, NaN o.s. controllerà per html () e poi per text () ...

Funziona:

var t = $('#taCommentSalesAdministration');
t.val('Hi');

Ricorda, la parte difficile qui è assicurarsi di utilizzare l'ID corretto. E prima di utilizzare l'ID, assicurati di mettere # prima di esso.

L'uso di $("textarea#ExampleMessage").html('whatever you want to put here'); può essere un buon metodo, perché .val() può avere problemi quando si utilizzano dati dal database.

Ad esempio:

Un campo di database denominato description ha il seguente valore asjkdfklasdjf sjklñadf. In questo caso l'uso di .val () per assegnare valore a textarea può essere un lavoro noioso.

Penso che manchi un aspetto importante:

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

funziona solo quando è presente un selettore ID (#)

per il selettore di classe esiste un'opzione per usare un valore nativo come:

$('.some-text-area')[0].value = 'test';
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top