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, al realizar un alert($("textarea#ExampleMessage").attr("value"))
nuevo valor devuelto?
Respuestas:
¿Has probado val?
fuente
value
atributo, pero eso no importa, porque tantoval()
yattr('value')
escritura a la propiedad del valor de JavaScript. Tenga en cuenta,attr()
no no establece atributos HTML! Solo establece las propiedades de JavaScript, mientras intenta ocultar la diferencia para casos como class / className donde el nombre es diferente. Pero aún verá la diferencia para los lugares donde el atributo y la propiedad hacen cosas diferentes, como en los elementos de formulario.val(foo)
funciona para mí (jQuery 1.9.1). El uso detext(foo)
pierde para actualizar el contenido del área de texto pierde los saltos de línea en IE, y losval(foo)
conserva.Textarea no tiene atributo de valor, su valor viene entre etiquetas, es decir
<textarea>my text</textarea>
, no es como el campo de entrada (<input value="my text" />
). Por eso attr no funciona :)fuente
$("textarea#ExampleMessage").val()
en jquery solo una magia.Debería notar que la etiqueta textarea usa html interno para mostrar y no en el atributo de valor al igual que la etiqueta de entrada.
Deberías usar
o
dependa de si desea mostrarlo como etiquetas html o texto sin formato.
fuente
Oohh vamos chicos! funciona solo con
fuente
Creo que esto debería funcionar :
fuente
Tenía 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 esto (
.val
) funcionapara
fuente
.val()
haga su magia en varios navegadores;)En Android
.val
y.html
no funcionó.hizo el trabajo
fuente
Tuve el mismo problema y esta solución no funcionó, pero lo que funcionó fue usar html
fuente
html()
solo funciona una vez por área de texto, la próxima vez, desea cambiar dinámicamente el contenido detextarea
,html()
no funcionará ...$('#textarea').val(encodedtext);
Ahí está el problema: necesito generar código html desde el contenedor de un div dado. Entonces, tengo que poner este código html en bruto en un área de texto. Cuando uso la función $ (textarea) .val () así:
o
Tuve problemas con algunos caracteres especiales ('') cuando están entre ''. Pero cuando uso la función: $ (textarea) .html () el texto está bien.
Hay un formulario de ejemplo:
Y el código javascript / jquery que no funciona para llenar el área de texto es:
Finalmente la solución:
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 también funciona perfectamente, agregue código html sin procesar en un área de texto.
fuente
textarea no almacena valores como
en su lugar, almacena valores en este formato:
Entonces
attr("value","someString")
te da este resultado:intente
$("#textareaid").val()
o en su$("#textareaid").innerHTML
lugar.fuente
El área de texto no tiene valor. jQuery .html () funciona en este caso
fuente
html()
solo funciona una vez por área de texto, la próxima vez, desea cambiar dinámicamente el contenido detextarea
,html()
no funcionará ...Funciona para mí ... He construido una pared de libro de cara ...
Aquí está la base de mi código:
fuente
Para establecer el valor de área de texto de HTML codificado (para mostrar como HTML) debe usarlo,
.html( the_var )
pero como se mencionó si intenta configurarlo nuevamente, puede (y probablemente) no funcionará.Puede solucionar esto vaciando el área de texto
.empty()
y luego configurándolo nuevamente con.html( the_var )
Aquí hay un JSFiddle que funciona: https://jsfiddle.net/w7b1thgw/2/
fuente
Lo intenté
.val()
.text()
.html()
y tuve algunos errores usando jQuery para leer o establecer el valor de un área de texto ... terminé usando js nativofuente
Podemos usar los métodos .val () o .text () para establecer valores. necesitamos poner valor dentro de val () como val ("hola").
Consulte el ejemplo aquí: http://www.codegateway.com/2012/03/set-value-to-textarea-jquery.html
fuente
Simplemente use textarea Id por su tipo como este:
fuente
Creo que falta un aspecto importante:
funciona solo cuando hay un selector de ID (#)
para el selector de clase hay una opción para usar el valor nativo como:
fuente
La respuesta aceptada funciona para mí, pero solo después de que me di cuenta de que tenía que ejecutar mi código una vez que la página terminó de cargarse. En esta situación, el script en línea no funcionó, supongo porque #my_form aún no se cargó.
fuente
Incluso puedes usar el siguiente fragmento.
fuente
Cuando tuve JQuery v1.4.4 en la página, ninguno de estos funcionó. Al inyectar JQuery v1.7.1 en mi página, finalmente funcionó. Entonces, en mi caso, fue mi versión de JQuery la que causó el problema.
id ==> textareaid
======================
fuente
He usado
$(textarea).val/html/text(any_str_var)
todo lo trabajado para mí. Si desea asegurarse de que su variable como una cadena se agregue al área de texto, siempre puede concat así:El método .val () definitivamente se usa en textarea - ver: https://api.jquery.com/val/
.html () se puede usar para obtener o establecer el contenido de cualquier elemento; consulte: https://api.jquery.com/html/#html2
.text () es lo mismo que .html, excepto que se puede usar para configurar el contenido XML: consulte - https://api.jquery.com/text/#text-text
También puede leer más acerca de cómo cada uno actúa sobre caracteres especiales con cada uno de esos enlaces.
fuente
Simplemente use este código y siempre tendrá el valor:
var t = $(this); var v = t.val() || t.html() || t.text();
Entonces verificará val () y establecerá su valor. Si val () obtiene una cadena vacía, NULL, NaN, buscará html () y luego text () ...
fuente
Esto funciona:
Recuerde, la parte difícil aquí es asegurarse de usar la identificación correcta. Y antes de usar la identificación, asegúrese de ponerla
#
antes.fuente
Usar
$("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 valorasjkdfklasdjf sjklñadf
. En este caso, usar .val () para asignar valor a textarea puede ser un trabajo tedioso.fuente
Intenté establecer value / text / html usando JQuery pero no tuve éxito. Entonces intenté lo siguiente.
En este caso, estaba inyectando un nuevo elemento textarea a un DOM creado.
fuente