2011-08-18 24 views
13

Bien, tengo una lista de dispositivos donde puedo seleccionar cuál editar. Tengo 3 estados para la edición. Cuando no se seleccionan dispositivos, cuando se selecciona 1 dispositivo o cuando se seleccionan x dispositivos.jQuery - eliminar texto de entrada de usuario de textarea

El problema que tengo es cuando un usuario escribe texto en el área de texto (commentField) y cancela la edición para editar otro dispositivo, el texto que se escribió en el área de texto no desaparecerá. Permanece así cuando recibo el nuevo cuadro de diálogo para la nueva edición, el campo de comentarios tiene el texto del antiguo commentField (como si no hubiera sido borrado)

He intentado los siguientes códigos para eliminar el texto (ambos cuando entonces cancelar se pulsa el botón y cuando se inicia un nuevo cuadro de diálogo), pero nada funciona:

$("#commentField").text(" "); 
$("#commentField").value = ' '; 

¿hay alguien que sabe cómo quitar el texto mecanografiado-usuario de un área de texto usando jQuery ??

Gracias de antemano.

-thor

+0

posible duplicado de [Establecer el valor de textarea en jquery] (http://stackoverflow.com/questions/415602/set-value-of-textarea-in-jquery) – jtbandes

Respuesta

51

Usted está buscando .val():

$("#commentField").val(''); 

Ejemplo:http://jsfiddle.net/andrewwhitaker/q6eLV/

+0

Gracias un millón, funcionó :) –

+0

hacer ¿Sabes por qué esto no desencadena un evento de cambio en el área de texto? – user3281466

+1

@ user3281466: establecer un valor programáticamente no desencadena el evento 'change'.Puede hacerlo manualmente usted mismo si lo desea llamando a '.change' después de establecer el valor. –

0

Se puede quitar el texto del área de texto así:

$("#commentField").html(""); 

EDITAR: vale, esto d No funciona, pero me interesaría saber por qué, y entiendo el voto negativo. Siempre pensé que el texto entre las etiquetas textarea era innerHTML y se supone que html() reemplaza precisamente eso. ¿No tendría sentido tener textarea como entrada? ¿o es solo porque las áreas de texto contienen grandes cantidades de texto que se verían horteras entre comillas?

Usar javascript regular con innerHTML me funciona en FF6. demo here

+0

-1 Ah pero no puedes: http://jsfiddle.net/jamwaffles/bbdTC/ – Bojangles

+0

@JamWaffles, por favor mira mi edición! –

+1

En realidad, la votación negativa es injusta aquí; Estaba atrapado con el mismo problema, de ahí el violín. También asumí que, como estaba entre etiquetas, '.html()' o '.text()' habría funcionado, pero aparentemente no. Quizás jQuery tiene un caso especial para 'textarea', por lo que usa' .val() 'como todas las otras entradas. – Bojangles

3

Desde textarea es un campo de entrada que tiene una propiedad value lo que tiene que utilizar val() método. Prueba este

$("#commentField").val(''); 
1

En jQuery es realmente $("#commentField").val(" ");

-1

1) <textarea name="editor1" id="editor1" rows="10" cols="80"></textarea>
2) CKEDITOR.replace('editor1');
3) initiated = true;
para escribir su texto en el que el área de texto
1) $("#editor1").val("your input value");
para limpiar su área de texto
1) $("#editor1").reset();
tanque para leer esto.

+0

La pregunta no hace referencia a CKEditor. – rvighne

Cuestiones relacionadas