jQuery验证未捕获的TypeError无法读取属性' form'未定义的

时间:2016-02-18 05:46:16

标签: javascript jquery validation

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

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

然后以编程方式添加更多字段。已经在表单标签内附加的ARE转换为div#to-append

添加的手动验证正常。

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

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

});

但得到"未捕获的TypeError无法读取属性'形式'未定义"错误如上所述。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您正在添加规则获取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', {
       requzired: true,
       minlength: 3,
       pattern: yt
    });
});




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

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

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

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



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




答案 1 :(得分:1)

无需使用ID。你有一个返回元素的选择器,直接添加规则。

dependencies {
compile 'com.google.android.gms:play-services-location:8.4.0'
              }