自定义验证规则不适用于基于类的规则

时间:2019-01-02 11:12:58

标签: javascript jquery validation

我正在使用jQuery验证插件。我已将自定义验证规则添加为

$.validator.addMethod("alphanumeric", function(value, element) {
   return this.optional(element) || /^[a-zA-Z][a-zA-Z0-9]+$/i.test(value);
}, "No special characters");

我用于配置validator

var $validator = $("#wizardForm").validate({
       rules: {
           entity_name: {
             required: true,
             alphanumeric: true
           }
       }
 });

alphanumeric规则对于带有name="entity_name"的元素完全适用

然后我将规则添加到类rename-prop的元素中,如下所示。

$('#wizardForm').find('.rename-prop').each(function() {
     $(this).rules('add', {
        required: true,
        alphanumeric: true
     });
 });

问题

required规则非常适用于类rename-prop的元素,但alphanumeric规则仅适用于rename-prop分类的元素。当它适用于entity_name字段时。

1 个答案:

答案 0 :(得分:0)

使用此正则表达式/ ^ [\ w。] + $ / i

您可以使用正则表达式的字符集[]选择多个字符。

正则表达式中的

^表示它从字符串的开头开始匹配。

regex中的

\ w表示它接受所有字母数字(A-Za-z0-9)和下划线(_)。

我添加了。在字符集中允许字符。也。

您可以在[]字符集中添加更多字符,也允许它们。

    regex中的
  • 表示它将继续匹配字符串中的所有字符。
regex中的

$表示它将检查多行,直到行末

regex中的

i是一个不区分大小写的标志。

  $(document).ready(function () {

  jQuery.validator.addMethod("alphanumeric", function(value, element) {
  return this.optional(element) || /^[\w.]+$/i.test(value);
   }, "Letters, numbers, and underscores only please");

    $('#myform').validate({ // initialize the plugin
    rules: {
        field: {
            required: true,
            alphanumeric: true
        }
    },
    submitHandler: function (form) { // for demo
        alert('valid form submitted'); // for demo
        return false; // for demo
    }
    });

  });
相关问题