基于Class的jQuery自定义验证

标签 jquery validation

我有这两种方法,而且它们确实有效......

问题在于,在第一种情况下,只有具有该类名的第一个输入项有效。

    $.validator.addClassRules("NameField",{
        required: true,
            minlength: 2,
        uniqueName: {
          product: function() {
              return $(this).val();
          }
        },
        messages: {
           required: "Required Field",
           minlength: "Minimum 2 characters",
           uniqueName: "Name exists already",
           remote: ''
        }
    });

第二个示例的问题是验证有效,但消息不适用于远程验证器

    $(".NameField").rules("add", {
        required: true,
            minlength: 2,
        uniqueName: {
          product: function() {
              return $(this).val();
          }
        },
        messages: {
           required: "Required Field",
           minlength: "Minimum 2 characters",
           uniqueName: "Name exists already",
           remote: ''
        }

    });

这是验证器的代码

    $.validator.addMethod("unique", function(value, element, params) {
      return $.validator.methods.remote.call(this, value, element, {
          url: 'mypage',
          data: {
              : value
          }
      });
    });

有什么IDE吗?

最佳答案

您无法像使用 uniqueName 那样添加内联验证方法。您必须首先定义将方法添加到验证器,然后才能将其添加到您的规则中。

HTML

<form class="testForm" action="" method="post">
    <input type="text" name="input1" class="NameField" />
    <input type="text" name="input2" class="NameField" />
    <input type="text" name="input3" class="NameField" />
    <input type="text" name="input4" class="NameField" />
    <input type="submit" />
</form>​

Javascript

$.validator.addMethod("uniqueName", function(value, element) {
    var parentForm = $(element).closest('form');
    if ($(parentForm.find('.NameField[value=' + value + ']')).size() > 1) {
        return false;
    }
    else {
        return true;
    }
}, "Name exists already");

$.validator.addClassRules({
    NameField: {
        required: true,
        minlength: 2,
        uniqueName: true
    }
});

$(".testForm").validate();​

<强> Demo

另请注意,您无法在 addClassRules 函数中添加消息

关于基于Class的jQuery自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734623/

相关文章:

javascript - for 循环中的 .change 函数

ruby-on-rails - 验证少数未保存的对象

Python – 验证输入是真实文件夹而不是根目录

php - 使用 php 验证 RFC3339 日期时间

javascript - 脚本不影响所有元素

php - 如何将 php 值传递给 javascript 然后传递给 ajax?

javascript - 更新在不可见的 HighCharts 系列问题上已更改的数据点

jquery - 使用jquery选择大于n的表列?

javascript - 复选框验证 - 至少选中一个

validation - 查看助手验证