2011-08-25 21 views
12

Así que tiene una vista de afeitar:Textarea no conseguir texto actualizado en jQuery

@{ 
    int i=1; 
    foreach(var story in Model.Storylines) 
    { 
     <span style="float:left;">Storyline @i</span> <span style="float:right; margin-right:5px;">Character Count: @story.CharCount</span><br /><br /> 
     <textarea [email protected]("entry"[email protected]) rows="5" style="width:730px; overflow:auto;">@story.Description</textarea><br /><br /> 
     i++; 
    } 
} 

lo tanto, el área de texto con entry1 de identificación tiene una descripción como "esta es una historia" cuando la página inicialmente cargas. Una vez que escribo algo en esa área de texto y después haga clic en un botón cuya única función es:

alert($("#entry1").text()); 

Todavía consigo "esta es una historia". ¿Por qué no se actualiza el área de texto con el texto que escribí?

+0

Parece un error jQuery (¿o peculiar? :). En IE .text() devuelve el valor de DOM actualizado, pero Chrome y FF requieren el uso de .val(). Definitivamente de acuerdo .val() tiene sentido. Ver violín aquí: http://jsfiddle.net/SSYpF/ – nothingisnecessary

Respuesta

24

Desea utilizar $("#entry1").val() para obtener el texto dentro del área de texto.

+0

¡ARGH! No puedo creer que no haya pensado en eso. Gracias ... Aceptaré tu respuesta tan pronto como expire el límite de tiempo. –

6

Usted desea utilizar .val() en contraposición a .text(), ya que es la forma de acceder al contenido de un <textarea>:

alert($("#entry1").text()); 

debería ser:

alert($("#entry1").val()); 
3

.val volverá el contenido del área de texto

http://api.jquery.com/val/

El método .val() se usa principalmente para obtener los valores de los elementos de formulario

http://api.jquery.com/text/

A diferencia del método .html(), .text() se puede utilizar en ambos documentos XML y HTML . El resultado del método .text() es una cadena que contiene el texto combinado de todos los elementos coincidentes.

3

creo texto la razón por la .text() no funciona es porque la propiedad de texto recibe el valor de texto en el área de texto entre la etiqueta y este valor no se actualiza cuando se cambia el valor del área de texto.

El texto introducido se almacena en el atributo value del control textarea.

aquí está un fiddle que muestra el ejemplo. El val() de jQuery selecciona el mismo valor de atributo por lo que también puede usar val()

Cuestiones relacionadas