Establecer el valor de textarea en jQuery

Estoy intentando establecer un valor en un campo de área de texto usando jquery con el siguiente código:

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

El problema es que, una vez que se ejecuta este código, ¿no está alterando el texto en el área de texto?

Sin embargo, cuando se realiza una alert($("textarea#ExampleMessage").attr("value")) se devuelve el nuevo valor establecido?

¿Has probado val?

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

Textarea no tiene ningún atributo de valor, su valor viene entre tags, es decir: , no es como el campo de entrada ( ). Es por eso que attr no funciona 🙂

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

Debería notar que la etiqueta textarea usa html interno para mostrar y no en atributo de valor al igual que la etiqueta de entrada.

   

Deberías usar

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

o

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

dependa de si desea mostrarlo como tags html o texto sin formato.

Creo que esto debería funcionar :

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

Oohh vamos chicos! funciona solo con

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

tuve la misma pregunta, así que decidí probarlo en los navegadores actuales (estamos un año y medio más tarde en el tiempo después de esta pregunta), y este ( .val ) funciona

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

para

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

Tuve el mismo problema y esta solución no funcionó pero lo que funcionó fue usar html

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

En android .val y .html no funcionó.

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

hizo el trabajo.

Ahí está el problema: necesito generar código html a partir del contenido de un div dado. Entonces, tengo que poner este código html sin formato en un área de texto. Cuando utilizo la función $ (textarea) .val () de esta manera:

$ (textarea) .val (“algunos html como bla bla”);

o

$ (‘# idTxtArGenHtml’). val ($ (‘idDivMain’). html ());

Tuve un problema con algún carácter especial (& ‘”) cuando están entre quot. Pero cuando uso la función: $ (textarea) .html () el texto está bien.

Hay una forma de ejemplo:

 
Test your newsletter»

Send to à :

Subject

  

Message

Y el código javascript / jquery que no funciona para llenar el área de texto es:

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

Finalmente la solución:

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

El truco es envolver su área de texto con una etiqueta span para ayudar con la función replaceWith. No estoy seguro de si está muy limpio, pero es perfecto también para agregar código html sin formato en un área de texto.

El área de texto no tiene valor. jQuery .html () funciona en este caso

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

textarea no almacena valores como

  

en cambio, almacena valores en este formato:

  

Entonces attr("value","someString") obtiene este resultado:

 . 

prueba $("#textareaid").val() o $("#textareaid").innerHTML lugar.

Intenté con .val() .text() .html() y tuve algunos errores usando jQuery para leer o establecer el valor de un área de texto … utilicé js nativos

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

Funciona para mí … He construido una pared de libro de cara …

Aquí está la base de mi código:

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

Podemos usar métodos .val () o .text () para establecer valores. necesitamos poner valor dentro de val () como val (“hello”).

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

Ver ejemplo aquí: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html

Para establecer el valor textarea del HTML codificado (para mostrar como HTML), debe usar .html( the_var ) pero, como se mencionó, si lo intenta y lo configura nuevamente, es posible que (y probablemente) no funcione.

Puede solucionar esto vaciando el área de texto textarea .empty() y luego configurándolo de nuevo con .html( the_var )

Aquí hay un JSFiddle en funcionamiento: 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(); }); }); 
   Google HTML Yahoo HTML Clear HTML 

La respuesta aceptada funciona para mí, pero solo después de darme cuenta de que tenía que ejecutar mi código después de que la página terminara de cargarse. En esta situación, el script en línea no funcionó, supongo que porque #my_form aún no se había terminado de cargar.

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

Incluso puedes usar el siguiente fragmento.

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

Cuando tenía JQuery v1.4.4 en la página, ninguno de estos funcionaba. Al inyectar JQuery v1.7.1 en mi página, funcionó finalmente. Entonces, en mi caso, era mi versión de JQuery la que causaba el 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'); 

Simplemente use ID de área de texto por su tipo como este:

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

Simplemente use este código y siempre tendrá el valor:

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

Por lo tanto, comprobará val () y establecerá su valor. Si val () obtiene una cadena vacía, NULL, NaN os buscará html () y luego para texto () …

Esto funciona:

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

Recuerde, la parte difícil aquí es asegurarse de usar la identificación correcta. Y antes de usar la ID, asegúrese de poner # antes de ella.

Usando $("textarea#ExampleMessage").html('whatever you want to put here'); puede ser una buena manera, porque .val() puede tener problemas cuando usa datos de la base de datos.

Por ejemplo:

Un campo de base de datos denominado como description tiene el siguiente valor asjkdfklasdjf sjklñadf . En este caso, usar .val () para asignar valor a textarea puede ser un trabajo tedioso.

Creo que falta un aspecto importante:

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

funciona solo cuando hay un selector de ID (#)

para el selector de clase hay una opción para usar un valor nativo como:

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