2013-05-11 93 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」不正確簡稱。