jQuery 验证 未捕获的类型错误 无法读取未定义的属性“form”

jQuery validate Uncaught TypeError Cannot read property 'form' of undefined

本文关键字:未定义 读取 属性 form 错误 验证 jQuery 类型      更新时间:2023-09-26

我正在使用jquery validate http://jqueryvalidation.org/

我有一个手动添加第一个字段的表单(硬编码)

然后以编程方式添加更多字段。已经附加到表单标签内的 ARE 附加到div #to 附加中

手动添加的那个验证正常。

对于其余的,每次添加字段时,我都会尝试添加这样的规则:

var $largestID = $("#to-append > div:last > div:first > input:first").attr("id");
console.log($largestID); //throws right id
$($largestID).rules("add", {
        required: true,
        minlength: 3,
        pattern: yt
});

但是得到上面提到的"未捕获的类型错误无法读取未定义的属性'形式'"错误。

任何帮助将不胜感激。

您正在添加采用规则的 ID 字符串。而是采用元素选择器,并向该选择器添加规则。

var $largestID = $("#to-append > div:last > div:first > input:first").attr("id");
console.log($largestID); //throws right id
$('#'+$largestID).each(function () {
    $(this).rules('add', {
       required: true,
       minlength: 3,
       pattern: yt
    });
});

使用$('#'+$largestID)获取该 ID 的字段,然后添加规则。

要向数组添加规则,请使用:

 $('#'+$largestID).each(function () { })

您甚至可以验证该元素的名称数组:

 $('#'+$largestID).validate({
    rules: {
      'url[]': {
        required: true,
      }
    }
});

无需

使用 ID。您有一个返回元素的选择器,请直接将规则添加到该选择器中。

$("#to-append > div:last > div:first > input:first").rules("add", {
    required: true,
    minlength: 3,
    pattern: yt
});