web-dev-qa-db-ja.com

jQuery検証プラグイン:アルファベットのみを受け入れますか?

JQueryの検証プラグインを使用して、アルファベット文字のみを受け入れるフィールドを検証したいのですが、定義されたルールはないようです。私はグーグルを検索しましたが、有用なものは何も見つかりませんでした。

何か案は?

あなたの助けに感謝。

17
KeyStroke

追加のメソッドファイルを含める場合、1.7の現在のファイルは次のとおりです。 http://ajax.Microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

lettersonlyルールを使用できます:)追加のメソッドは、ダウンロードするZipの一部です。常に最新の here を見つけることができます。

以下に例を示します。

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

追加のメソッドはそれぞれ独立しているため、その特定のメソッドを含めることができます。これを.validate()呼び出しの前に配置するだけです。

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

注意してください、

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

[a-z、 ""]コンマと引用符を追加すると、入力ボックスにスペース、コンマ、引用符を含めることができます。

スペース+テキストの場合、次のようにします。

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

[a-z]これにより、テキストだけでなくスペースも許可されます。

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

また、メッセージに既にメッセージがある場合は、「文字とスペースのみください」というメッセージは不要です。

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")
        },

アダム

14
adam

ニックの答えへのほんの小さな追加です(これはうまくいきます!):

たとえば、文字間にスペースを許可する場合は、フルネームの文字のみを入力するように制限できますが、スペースも許可する必要があります-以下のようにスペースをカンマでリストしてください。同様に、他の特定のキャラクターを許可する必要がある場合:

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

ニックとアダムの両方の答えは本当にうまくいきます。

áçなどのラテン文字を許可したい場合は、メモを追加したいと思います。

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

文字とスペースを許可する

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
            }
        }
    });
 $('.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;
        }
    });
0
Anup Shetty