2010-05-08 16 views

Odpowiedz

69

Jeśli obejmować dodatkowy plik metody, oto aktualny plik do 1,7: http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

można wykorzystywać regułę lettersonly :) Dodatkowe metody są częścią zip pobrać można zawsze znaleźć najnowsze here .

Oto przykład:

$("form").validate({ 
    rules: { 
    myField: { lettersonly: true } 
    } 
}); 

Warto zauważyć, każda dodatkowa metoda jest niezależna, można włączyć ten konkretny jeden, wystarczy umieścić ten przed .validate() rozmowy:

jQuery.validator.addMethod("lettersonly", function(value, element) { 
    return this.optional(element) || /^[a-z]+$/i.test(value); 
}, "Letters only please"); 
+0

^[A-Za-z] + $, aby również akceptować wielkie litery lub ustawić wartość na małe litery z funkcją toLowerCase(). –

+0

przegłosowano dla 'this.optional (element) ||' – Pankaj

4

tylko mały oprócz odpowiedzi Nicka (która działa świetnie!):

Jeśli chcesz zezwolić na spacje pomiędzy literami, na przykład możesz ograniczyć wprowadzanie tylko liter w pełnej nazwie, ale powinno to również pozwolić na spację - po prostu spisz przecinek jak poniżej za pomocą przecinka. I w ten sam sposób, jeśli trzeba pozwolić każda inna specyfika:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z," "]+$/i.test(value); 
}, "Letters and spaces only please");  
13

Bądź ostrożny,

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z," "]+$/i.test(value); 
}, "Letters and spaces only please"); 

[AZ ",„] dodając przecinek i cudzysłowu, pozwalasz obowiązuje , przecinki i cudzysłowy w polu wprowadzania.

do pomieszczeń + tekst, po prostu to zrobić:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{ 
return this.optional(element) || /^[a-z ]+$/i.test(value); 
}, "Letters and spaces only please"); 

[A-Z] pozwala przestrzenie aswell jak tylko tekst.

.............................................. ..............................

także wiadomość "Tylko litery i spacje proszę" nie jest wymagana, jeśli już komunikat w wiadomościach:

messages:{ 
     firstname:{ 
     required: "Enter your first name", 
     minlength: jQuery.format("Enter at least (2) characters"), 
     maxlength:jQuery.format("First name too long more than (80) characters"), 
     lettersonly:jQuery.format("letters only mate") 
     }, 

Adama

2

Zarówno Nick i odpowiedzi Adama działa naprawdę dobrze.

Chciałbym dodać notatkę, jeśli chcesz zezwolić na alfabecie łacińskim, jak á i ç jak chciałem zrobić:

jQuery.validator.addMethod('lettersonly', function(value, element) { 
    return this.optional(element) || /^[a-z áãâäàéêëèíîïìóõôöòúûüùçñ]+$/i.test(value); 
}, "Letters and spaces only please"); 
+1

Dzięki! ale także zapomniałeś - hehe :) – Andres

+0

Dzięki, @Andres! Właśnie zaktualizowałem swoją odpowiedź i dodałem słowo "ñ" – FlavioEscobar

1

celu umożliwienia litery ans obowiązuje

jQuery.validator.addMethod("lettersonly", function(value, element) { 
return this.optional(element) || /^[a-z\s]+$/i.test(value); 
}, "Only alphabetical characters"); 

$('#yourform').validate({ 
     rules: { 
      name_field: { 
       lettersonly: true 
      } 
     } 
    }); 
0
$('.AlphabetsOnly').keypress(function (e) { 
     var regex = new RegExp(/^[a-zA-Z\s]+$/); 
     var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); 
     if (regex.test(str)) { 
      return true; 
     } 
     else { 
      e.preventDefault(); 
      return false; 
     } 
    }); 
Powiązane problemy