2011-02-22 8 views
9

Muhtemelen aptalca bir soru, ama google arazisinde hiçbir şey bulamıyorum. Girilen alanın durumunu görmezden gelmek için yöntemlerden birine ihtiyacım var. Bir şehir adı eşleştirmesi yapıyorum, ancak geçerli olmak için "Atlanta" ve "atlanta" nın her ikisine de ihtiyacım var. İhtiyacım olan doğrulama aşkını almak için bunu nasıl değiştirmeliyim? her türlü içinjQuery validate - Mektup durumunu nasıl görmezden gelirim?

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

Öncesi sayesinde küçük harf duyarlı bir maç almanın en kolay yolu büyük harfe ve sonra çünkü bazı kültürlerde (büyük harf karşılaştırmak için iki değeri dönüştürmek için

cevap

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

Süper hızlı cevap Alex! Müthiş ve teşekkürler bu mükemmel çalıştı. Birisi size nasıl yapıldığını gösterdiğinde her zaman belli oluyor :) – Jamie

+0

@Jamie Endişelenme yok, mutlu kodlama! – alex

6

olduğunu :)/diller üst- küçük harfe dönüştürmek bir karakteri değiştirebilir!).

Yani bu duyarsız olduğu, kontrol edildiğinde

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

Bu harika bir çözümdür. Bunu da test ettim ve buna bağlı kalacağımı düşünüyorum. Çoğu insan kapitalize eder. – Jamie

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

Teşekkürler! Mükemmel cevap. Çok takdir edildi. – Jamie

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

yapmak ve regex ile eğlenceli sürü yapabilirsiniz. Keyfini çıkarın. Ve lütfen "Cosntant".toLowerCase() yapmayın, bunun içinde çok fazla yanlış var.

Hatta sonra aşağıdaki iki örnek girişler için kullanılabilir

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

gibi bir olgu duyarsız bir karşılaştırma yapmak için yeniden kullanılabilir daha genel jQuery doğrulama kuralı oluşturabilir

+1

Bunu denedim (meraklıyım ve bir kediyi cildin her yolunu bilmek istiyorum), ama hiçbir aşka sahip değilim. Neden .toLowerCase(), Dmitriy gitmek için doğru yolu değil mi? – Jamie

13

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

teşekkürler, bu daha kullanışlı bir jenerik çözümdür – TimoSolo