2013-05-11 46 views
0

我试图在动态填充的表单上添加验证规则,具体取决于来自后端的JSON响应。我使用的是jQuery 1.9.1和jQuery Validation插件。在动态表单上添加规则

function getItems(Id) { 
    $.ajax({ 
      url: ... 
      success: function (items) { 
       buildForm(items); 
      } 
      error: ... 
} 

function buildForm(items) { 
    $form = $('#testForm'); 
    $form.empty(); 
    $.each(items, function(i, item) { 

     $form.append('<input type="text"' + 
     'id="' + item.Id + '"' + 
     'name="' + item.Name + '"' + 
     'value="' + item.Default + '"' + 
     ' />'); 
     $form.append('<br />'); 

     $('#' + item.Id).rules("add", { required:true,email:true }) // error! 
    }); 
} 

jQuery(function ($) { 
    getItems(1 //just an Id); 
}); 

Error: Uncaught TypeError: Cannot read property 'settings' of undefined

我是新来的JavaScript肯定这是不是要走最明智的。 HTML未报告,它只是一个空的表单。 我认为DOM没有准备好规则选择,但我真的不知道 如何处理这个问题,'因为我必须使用成功回调,并且我不在DOM就绪函数中。 欢迎任何建议!

回答

4

.validate()在哪里?

直到插件初始化为.validate()后,才能调用插件方法rules("add")

0

我认为错误是从验证插件抛出,

var settings = $.data(element.form, "validator").settings;

可能是“ID”不正确简称。