Área de texto creciente de jQuery Mobile con datos AJAX

Estoy cargando texto en un cuadro de entrada a través del $("textarea").val(ajaxData); sin embargo, no crecerá automáticamente y mis datos no se muestran por completo. ¿Hay algún método o algo que pueda llamar para forzar una actualización?

preguntado el 22 de mayo de 12 a las 10:05

Publique su CSS, javascript y HTML; lo más probable es que su problema se deba a su CSS. -

No tengo css personalizado, esto es para un cuadro de texto normal. la única diferencia es que la entrada no proviene del teclado sino de la fuente de datos ajax. Entonces debe haber una función para hacer esto en jQM, simplemente no sé cuál es. -

3 Respuestas

De hecho, hay una función interna que es responsable de cambiar el tamaño, llamada resizeCheck(). Sin embargo, esa función es un detalle de implementación privada y el widget no la expone como un método público.

Sin embargo, puede solucionar esto: dado que resizeCheck() es llamado por el widget keyup controlador de eventos, puede desencadenar ese evento usted mismo después de establecer el nuevo valor:

$("textarea").val(ajaxData).keyup();

Esto cambiará el tamaño del widget exactamente de la misma manera que si hubiera escrito el nuevo texto "a mano".

contestado el 22 de mayo de 12 a las 14:05

Gracias de nuevo Frédéric, me has ahorrado horas de búsqueda. ¡Funciona perfecto! :) Sin embargo, una vez que el campo crezca, no volverá... encontré este comportamiento haciendo ediciones manuales también. ¿Hay alguna manera de restablecer este campo a la normalidad? ¿Podría ser esto un error? - Astronauta

@Adam, esto es de hecho un error. Error # 2719, ser especifico. - Frederic Hamidi

Gracias una vez más por sus comentarios. Creo que fusionaré el complemento elástico, es un fastidio ya que quería usar el CDN en lugar de un jQuery local. - Astronauta

¿Hay algún parámetro para obligarlo a desplazarse en lugar de crecer? - Astronauta

Que yo sepa, no lo hay. - Frederic Hamidi

var offset=15;
$("textarea").val(ajaxData);
$("textarea").height($("textarea").innerHeight() + offset)

Puede probar sin compensación si funciona en su caso. También puede cambiar el valor de compensación si es necesario

contestado el 22 de mayo de 12 a las 10:05

hola gracias por esta solucion Sin embargo, me preguntaba si alguien sabe qué función llama internamente jQM para hacer esto con el texto de entrada regular. si lo escribe, crece automáticamente, pero no lo hará con datos ajax. - Astronauta

Hola Imdad, ¿innerHeight me daría el valor del texto? ¿Puedo usar esto para hacerlo elástico? ¿Crecer y encogerse? - Astronauta

innerHeight le dará la altura del contenido interno. Por lo tanto, puede crecer/reducirse en consecuencia. Para obtener valor o el uso de texto real $("textarea").val() - Soy papá

lo siento, quise decir el valor de la altura del texto. voy a probar - Astronauta

Debe especificar una altura: 'auto' en su elemento contenedor usando CSS.

Si escribió una altura estática, no crecerá automáticamente.

contestado el 22 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.