2010-03-08 3 views
2

Dans un onglet, j'ai un formulaire qui est chargé dynamiquement via ajax. Étant donné que le nom du champ est également dynamique (par exemple, <input name='title1' id='title1', class='tRequired'>), j'écris une méthode de validation personnalisée à l'intérieur du "on complete" comme ceci. Cependant, le code personnalisé n'est pas exécuté (l'alerte ne s'affiche jamais), peu importe ce que j'essaie.La validation personnalisée ne semble pas être enregistrée

$.ajax 
       ( 
        { 
         url: 'index.php?func=trainingmgr&aAction=displayAddForm', <br> 
         type: 'GET',<br> 
         dataType: 'html',<br> 
         complete: function(req, err) 
          { 
           //Append response to the tab's body <br> 
           $(href, '#trainingTabs').append(req.responseText); 

           $.validator.addMethod 
           ( 
            'tRequired', 
            function(value, element) 
            { 
             if(value == '') 
             { 
              alert('I am empty'); <====== Never pops up 
              return true; 
             } 
             else return false; 
            }, 
            '<br>Required field' 
           ); 

           $('#upload' + index).click 
           ( 
            function() 
            { $('#addForm' + index).validate(); } 
           ); 
          } 
        } 
       ); 
+0

Quel plugin validateur utilisez-vous? – Damovisa

+0

tout d'abord, pouvez-vous confirmer que la fonction ajax complete est exécutée? En plus de l'addmethod au validateur, le reste de la fonction complète fonctionne-t-il? Si c'est le cas, il se peut que votre méthode ajoutée personnalisée ne fonctionne pas nécessairement sur un appel '.validate()' par défaut sans options. vous devrez spécifier une option de règles, avec tRequired: true; pour les champs. – Sander

Répondre

1

Essayez

value == null 
0

similaires à la réponse de Jeremy,

Essayez

value === '' 
Questions connexes