2012-08-02 35 views
5

Estoy tratando de leer el contenido de un área de texto, pero .val() no funciona para mi área de texto. Estaría feliz, si alguien tiene una solución para mí. Aquí está mi código:JQuery: .val() no funciona para textarea

HTML:

<textarea id="details" class="required" rows="5"></textarea> 

JS:

$.ajax({ 
     type: "GET", 
     url: "reserve.php", 
     data: { 
      details : $('#details').val(), 
      ... 
     }, 
     ... 
}); 

Gracias!

+0

Quizás tenga otro elemento con id = "detalles" en su página? – Rodik

+0

.val() está trabajando en áreas de texto, verifica si tu ortografía es correcta y no tiene ningún "," en el último parámetro – Ziinloader

+0

'.val()' funciona bien en el sentido de que se devuelve el valor real del área de texto. Definir "no funciona"? –

Respuesta

5

val() funciona bien ... Debe tener su error en otro lugar.

Example

Probablemente el selector en la que no se ajuste. Compruebe si hay errores tipográficos y si aplicó el prefijo correcto (# para la identificación o . para la clase)

+0

¡Finalmente una respuesta incorrecta! –

+0

no funciona significa que $ ('# details'). Val() devuelve el valor 'undefined' – Trinityx89x

+1

@ user1571064 Luego su selector es incorrecto. '$ ('# details')' devuelve una colección jQuery vacía, y '.val()' devolverá 'undefined'. –

1

detalles: encodeURIComponent (. $ ('# Detalles') val())

5

Ésta es una solicitud válida, como he experimentado este mismo problema y puede informar lo siguiente:

  • no - no es el selector, un objeto válido se devuelve
  • no - no es sólo un elemento con este id
  • no - hay no es HTML no válido o mal uso de la etiqueta por lo que yo he visto

Sí - hay una respuesta que no es un truco o mal código:

$ ('# myTextArea') [0] .value

2

Tuve el mismo problema. La solución en mi caso era que había dos elementos con el id "comentario". jQuery devolvió el valor de la primera, que estaba vacía. Si miré el código fuente, solo vi uno, ya que el segundo se agregó después de una llamada AJAX. Pero cuando se busca en el inspector por "comentario" (incluidas las comillas) vi ambos elementos. Espero que esto te ayude también.

1

Extrañamente tuve un problema similar al intentar vaciar todas las áreas de texto. No fue un problema de selector ya que estaba seleccionando todas las áreas de texto en la página con $ ('textarea'). Encontré que funcionaba lo siguiente: $ ('textarea'). Text ('');

Para que pueda intentar configurar el área de texto con: $ ('textarea'). Text ('my new value');

+0

Esto funcionó para mí también ... – Ananth

+0

¡Usted leyenda! Gracias – James

0

Mi problema era que estaba usando un selector de nombre en lugar de un selector de id.

i.e.:

obras:

'content': $(this).find('#text_content').val(), 

no funciona:

'content' : $(this).find('input[name=text_content]').val(), 

No sé por qué el selector de nombre no funcionaba para el área de texto (que trabajó para todos los otros campos), pero hay lo tienes.