2010-02-04 17 views
7

Estoy enviando algunos comentarios a través de $ .ajax. Sin embargo, quiero verificar para asegurarse de que se ingrese algún contenido en el cuadro de entrada. Por el momento estoy usando esto:Comprobación de entrada en blanco con jQuery

if ($("#comments").val().length != 0){ 

Sin embargo, esto sólo funciona si un usuario deja en la entrada en blanco, si la deja un espacio o volver luego pasará. ¿Cómo puedo mejorar esto si?

Respuesta

11

Quitar espacios en blanco antes de comprobar vacío:

if ($("#comments").val().replace(/^\s+|\s+$/g, "").length != 0){ 
+0

¿Sería esto más útil que solo usar un recorte? – Chris

+1

@Chris - no - Simplemente no sabía acerca de la función de recorte de jQuery. –

8

puede optar por una trim -función ... google danos algunos buenos enlaces. btw ... jQuery tiene un trim-function

por ejemplo.

var trimmedValue = jQuery.trim($('#comments').val()); 
if (trimmedValue.length > 0) { 
    // TODO 
} 
+0

No probado, pero creo que podría ir más allá y hacer jQuery.trim ($ ("# comments"). Val()). Longitud, ya que el ajuste devuelve una cadena de todos modos. No es que la variable adicional realmente vaya a doler nada. – thismat

+0

como siempre soy amigo de la introducción de variables adicionales, para tener alguna posibilidad de depuración, lo dejaría así :) –

+0

No puedo discutir eso. Solo tengo el hábito (bueno o malo) de evitar variables adicionales si no las voy a reutilizar. Sin embargo, podría ver un buen caso para reutilizar esto si va a validar el contenido real. – thismat

1

En JavaScript

//Following all return true 
"" == false 
" " == false 
" " == false 
" " == false 
//Not related to question but interesting 
//Following all (also) return true 
!" " == false 
!" " == false 
!" " == false 
//Except 
!"" == false //returns false 

(Verified con la consola de Firebug y la consola de herramientas para desarrolladores de Chromium).

+0

No estoy de acuerdo con usted: http://jsfiddle.net/cn2YH/ – jerone

+0

@jerone No intente con "!" operador. Ver respuesta actualizada. –

+0

Ok, aldo es una forma muy extraña de verificar una afirmación, te doy que funciona: http://jsfiddle.net/cn2YH/2/ – jerone

1

Sé que esto es una respuesta muy tarde, pero estoy usando esto ...

var self = $(this).val(); 
if (!self || self[0] == ' '){ 
    //////do something 
} 

y funciona bien! ¡Espero que alguien más pueda sacarle provecho!

+0

Esta no es una buena idea. ¿Qué pasa con el caso cuando el usuario ingresa '" cadena válida "'? Probablemente no quieras descartar eso. –

+0

Supongo que es posible, pero ¿por qué alguien querría un valor vacío para su primer char? –

+0

O debería decir necesito un valor vacío en lugar de querer. –

Cuestiones relacionadas