2010-03-01 17 views
6

Tengo un área de texto que se debe completar antes de continuar con un proceso en particular.Seleccionar espacio de texto en blanco con valor = '' selector

Para cuadros de texto normales, puedo recuperar todas las entradas en blanco agregando el selector de atributos [value = ''] la cadena de selección.

Cuando lo hago con el área de texto, no funciona.

Si estoy en IE y no en modo estricto, funciona, pero eso no es algo que quiero hacer.

Si primero selecciono todas las áreas de texto y luego realizo una llamada de filtro con [value = ''] como el selector funciona.

¿Esto es por diseño? Desde el punto de vista lógico, tiene sentido que un área de texto no tenga realmente un atributo de valor, pero supongo que la llamada de filtro no funcionaría.

Aquí es un código de ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<HTML> 
<HEAD> 
    <SCRIPT SRC="jquery-1.4.2.min.js"></SCRIPT> 

    <SCRIPT> 
     $(function() { 
      var Rslt1 = $("textarea[value='']").size(); 
      var Rslt2 = $("textarea").filter("[value='']").size(); 
      alert(Rslt1 + ' ' + Rslt2); 
     }) 
    </SCRIPT> 
</HEAD> 
<BODY> 
    <TEXTAREA></TEXTAREA> 
</BODY> 
</HTML> 

En IE 8, Chrome 4 y Firefox 3.6 el resultado es 0 1 como se describe anteriormente.

+0

Descubrí que usar .filter era la mejor opción para mí: http://stackoverflow.com/a/16002674/1090274 –

Respuesta

10

Textarea no tiene un atributo de 'valor'. Pruebe $("textarea:empty").

+1

¿Ha intentado usar $ ("textarea: not (: empty)")? Lo usé para obtener el área de texto no vacía, pero el resultado siempre está vacío, incluso cuando el área de texto ya está lleno. – Praditha

+0

@Praditha, ¿qué hay de $ ("textarea"). Not not (": empty")? No lo he probado, pero creo que la función en lugar del selector a veces es más confiable. –

Cuestiones relacionadas