【问题标题】:Custom validation rule not working for class based rules自定义验证规则不适用于基于类的规则
【发布时间】:2019-01-02 19:30:18
【问题描述】:

我正在使用 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 字段。

【问题讨论】:

  • 如果你需要这两个,我认为你应该使用&& 而不是||。或者您可以在整个返回值中添加大括号,因为 || 在当前情况下执行不同的操作。
  • 您能否发布一个 HTML 示例来重现您的问题?
  • @TusharWalzade 实际上的问题是验证规则适用于 entity_name 字段,而不适用于类 rename-prop 的元素
  • 好的,如果你用plnkr展示它会很棒

标签: javascript jquery validation


【解决方案1】:

使用这个正则表达式 /^[\w.]+$/i

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

正则表达式中的

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

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

我已经添加了 .字符集里面允许字符。也。

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

  • 在正则表达式中意味着它将继续匹配字符串中的所有字符。
正则表达式中的

$ 表示如果它的多行,它将检查到行尾

正则表达式中的 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
    }
    });

  });

【讨论】:

  • 感谢您抽出宝贵时间。实际上我对验证规则没有问题。问题是为什么它不适用于基于类的规则,而它却适用于 entity_name 字段
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 2017-07-25
  • 2020-05-28
  • 1970-01-01
相关资源
最近更新 更多