2013-05-11 3 views
0

J'essaie d'ajouter des règles de validation sur un formulaire qui est rempli dynamiquement, en fonction d'une réponse JSON à partir d'un back-end. J'utilise jQuery 1.9.1 et le plugin jQuery Validation.Ajouter des règles sur le formulaire dynamique

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

Je suis nouveau JavaScript sûrement ce n'est pas le plus intelligent du chemin à parcourir. HTML non rapporté, c'est juste un formulaire vide. Je pense que le DOM n'est pas prêt pour la sélection des règles, mais je ne sais vraiment pas comment gérer cela, parce que je dois utiliser le rappel de succès et je ne suis pas dans la fonction DOM ready. Toutes les suggestions sont les bienvenues!

Répondre

4

Où est .validate()?

Vous ne pouvez pas appeler la méthode de plug-in rules("add") tant que le plug-in n'a pas été initialisé avec .validate().

0

Je pense que l'erreur est renvoyée du plugin validateur,

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

peut être le 'id' est pas fait référence correctement.

Questions connexes