2010-03-19 126 views

回答

36

只需添加自定義驗證,並使用它像這樣:

jQuery.validator.addMethod("accept", function(value, element, param) { 
    return value.match(new RegExp("." + param + "$")); 
}); 

只有編號:

rules: { 
    field: { accept: "[0-9]+" } 
} 

只有字母

rules: { 
    field: { accept: "[a-zA-Z]+" } 
} 
+0

accept是驗證文件擴展名的本機方法。 http://docs.jquery.com/Plugins/Validation/Methods/accept#extension –

+2

不應該'''是'^'? –

+0

順便說一句,創建一個新規則是不必要的,因爲插件已經有一個名爲'lettersonly'的規則作爲['additional-methods.js'文件]的一部分(https://cdnjs.cloudflare.com/ajax/libs /jquery-validate/1.15.0/additional-methods.js)。 – Sparky

18

的微小變化。

jQuery.validator.addMethod("accept", function(value, element, param) { 
    return value.match(new RegExp("^" + param + "$")); 
}); 

因爲這樣它接受像「#abc」這樣的表達式。

0

嘗試這樣的:在您的腳本代碼如下

 var numbers = /[0-9]+/; 
     var SpCharacters = /^\s*[a-zA-Z0-9\s]+\s*$/; 

     if (!numbers.test(name) && !SpCharacters.test(name)) { 
      return [false, "Name should be alphabetical.", ""]; 
     } 
4

使用。 這會爲驗證程序添加一個新的子句。

$.validator.addMethod(
     "alphabetsOnly", 
     function(value, element, regexp) { 
      var re = new RegExp(regexp); 
      return this.optional(element) || re.test(value); 
     }, 
     "Please check your input values again!!!." 
); 
$("#formElement").rules("add", {alphabetsOnly: "^[a-zA-Z'.\\s]$" }) 
0

下面的方法來添加自定義驗證工作正常,但確認發生在KEYUP,所以錯誤不斷彈出當用戶鍵入的文本。

return value.match(new RegExp("")); 

下面的方法工作正常字母和空間,非常適合名稱字段。

jQuery.validator.addMethod("alphabetsAndSpacesOnly", function (value, element) { 
    return this.optional(element) || /^[a-zA-Z\s]+$/.test(value); }); 

    $("FieldId").rules("add", { 
     alphabetsAndSpacesOnly: true, 
     messages: { alphabetsAndSpacesOnly: "Please enter a valid name." } 
    }); 
0

的jQuery驗證插件已經呼籲lettersonlythe additional-methods.js file一部分的規則,它看起來像這樣...

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

添加CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.js"></script> 
rules:{ 
    txtname:{required: true, 
      lettersonly:true 
      } 
0

嘗試這:(這是完美的自定義驗證使用jQuery驗證程序

$(function() { 

    $.validator.addMethod("alphabetsnspace", function(value, element) { 
     return this.optional(element) || /^[a-zA-Z ]*$/.test(value); 
    }); 

    $("#add-employee").validate({ 
     rules: { 
      employee_surname: { 
       required: true, 
       alphabetsnspace: true 
      }, 
      employee_firstname: { 
       required: true, 
       alphabetsnspace: true 
      }, 
      employee_othername: { 
       alphabetsnspace: true 
      }, 
      father_name: { 
       required: true, 
       alphabetsnspace: true 
      }, 
      mother_name: { 
       required: true, 
       alphabetsnspace: true 
      }, 
      spouse_name: { 
       alphabetsnspace: true 
      }, 
      ssn: { 
       number: true, 
      }, 
      phone_no: { 
       number: true, 
      }, 
      phone_no2: { 
       number: true, 
      }, 
      passport: { 
       number: true, 
      }, 
      driving_license: { 
       number: true, 
      }, 
      email: { 
       email: true 
      } 
     }, 
     messages: 
      { 
       "employee_surname":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
       "employee_firstname":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
       "employee_othername":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
       "father_name":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
       "mother_name":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
       "spouse_name":{ 
        alphabetsnspace: "Please Enter Only Letters" 
       }, 
      } 
    }); 
});