2011-02-22 22 views
9

Probablemente una pregunta tonta, pero parece que no puedo encontrar nada en google land. Simplemente necesito uno de mis métodos para ignorar el caso del campo ingresado. Estoy haciendo una coincidencia de nombre de ciudad, pero necesito que tanto "Atlanta" como "atlanta" sean válidos. ¿Cómo debo editar esto para obtener el amor de validación que necesito?jQuery validate: ¿cómo ignoro letter case?

jQuery.validator.addMethod("atlanta", function(value) { 
    return value == "Atlanta"; //Need 'atlanta' to work too 
}, '**Recipient must reside in Chicago City Limits**'); 

Pre gracias a todos y cada uno :)

Respuesta

8
jQuery.validator.addMethod("atlanta", function(value) { 
    return value.toLowerCase() == "atlanta"; 
}, '**Recipient must reside in Chicago City Limits**'); 
+0

Respuesta súper rápida Alex! Increíble y gracias, funcionó a la perfección. Siempre parece obvio una vez que alguien te muestra cómo se hace :) – Jamie

+0

@Jamie ¡No te preocupes, feliz codificación! – alex

6

La manera más fácil de conseguir un partido entre mayúsculas y minúsculas es convertir ambos valores a mayúsculas y luego comparar (en mayúsculas porque en ciertas culturas/lenguas del mayúsculas a la conversión en minúsculas puede cambiar un personaje!).

Así que haga el cheque

value.toUpperCase() == "Atlanta".toUpperCase() 
+0

Esta es una gran solución. Lo probé también y creo que me apegaré a él. La mayoría de las personas capitalizarán. – Jamie

2
return value.toLowerCase() == "atlanta"; 
or use 
return value.toLowerCase() == "Atlanta".toLowerCase(); 
+0

Gracias Amit! Respuesta perfecta. Muy apreciado. – Jamie

1
return (value ? value.match(/atlanta/i) : null) != null 

Esta es sensible a mayúsculas y se puede hacer un montón de cosas divertidas con la expresión regular. Disfrutar. Y, por favor, no hagas "Cosntant".toLowerCase(), hay demasiadas fallas en eso.

+1

Intenté esto (tengo curiosidad y me gusta conocer todas las formas de despellejar a un gato), pero no estoy recibiendo ningún amor. ¿Por qué el .toLowerCase() no es el camino correcto para ir a Dmitriy? – Jamie

13

Incluso se puede crear una regla más genérico de validación de jQuery que puede ser reutilizado para llevar a cabo un caso comparación insensible como

$.validator.addMethod("equalToIgnoreCase", function (value, element, param) { 
     return this.optional(element) || 
      (value.toLowerCase() == $(param).val().toLowerCase()); 
}); 

que luego se pueden utilizar para las dos entradas de muestra siguientes

<input type="text" name="firstname"/> 
<input type="text" name="username"/> 

como

$("form").validate({ 
    rules: { 
     firstname: { 
      equalToIgnoreCase: "input[name=username]" 
     } 
    }, 
    messages: { 
     firstname: { 
      equalToIgnoreCase: "The 'firstname' must match the 'username'" 
     } 
    }); 
+1

gracias, esa es una solución genérica más útil – TimoSolo

Cuestiones relacionadas