2010-10-27 5 views
0

J'essaie actuellement d'exécuter le plugin jQuery Validation dans une boîte de dialogue jQuery. Le code est en tant que telle dans la fonction document.ready:Boîte de dialogue jQuery UI sur le plugin jQuery Validation dans ASP.NET: cela peut-il fonctionner?

$("#Dialog").dialog({ 
    bgiframe: true, 
    autoOpen: false, 
    height: 600, 
    width: 590, 
    modal: true, 
    resizable: false, 
    open: function (type, data) { 
     $(this).parent().appendTo("#aspnetForm"); 
    }, 
    close: function() { } 
}); 

$("#aspnetForm").validate({ 
    rules: { 
     <%=txtCode.UniqueID %>: { 
      required: true 
     }, 
     <%=txtDescription.UniqueID %>: { 
      required: true 
     }, 
     <%=txtMallCode.UniqueID %>: { 
      required: true 
     } 
    }, messages: {} 
}); 

Dans la fonction pageLoad, je:

$(".Add").unbind(); 
$(".Add").click(function (e) { 
    e.preventDefault(); 
    var ctrl = GetPrefixSuffix($(this).attr('id'), 'btnAdd'); 

    $("#Dialog").dialog('option', 'buttons', 
    { 
     'Add': function() { 
      if ($("#aspnetForm").validate()) { 
       //Do some stuff 
       $(this).dialog('close'); 
      } 
     }, 
     'Cancel': function() { 
      $(this).dialog('close'); 
     } 
    }); 
    $("#Dialog").dialog('open'); 
}); 

Je ne peux pas réellement la boîte de dialogue jQuery pour montrer des erreurs, mais il est arrêté par le conditionnel et ne ferme pas le dialogue. Comment puis-je le réparer?

+0

Alors est votre question comment obtenir le plugin de validation pour montrer des erreurs, ou pourquoi la boîte de dialogue ne se ferme pas après avoir appelé valider? Ou autre chose? – Ryley

+0

Pourquoi il ne montre pas d'erreurs. – jlrolin

+0

Une autre chose que vous pourriez changer est de simplement spécifier dans vos éléments d'entrée 'class =" required "', de cette façon vous pouvez appeler '.validate()' sans aucun paramètre – Ryley

Répondre

1

Voir ici pour un exemple de travail: http://jsfiddle.net/ryleyb/HJFep/

principal changement - dans votre fonction Ajouter, j'ai changé le validate appel à valid (consultez la documentation du plugin de validation pour la différence). Je l'ai aussi fait renvoyer faux si le formulaire n'était pas valide.

Je ne comprenais pas particulièrement pourquoi vous avez eu la fonction ouverte pour votre dialogue:

open: function (type, data) { 
    $(this).parent().appendTo("#aspnetForm"); 
} 

donc ma réponse juste ignora ...

+0

En fait, je crois que le retour faux était mon lien manquant. J'ai utilisé .Valid() avant, et il était en train de frapper mon si correctement, mais ne montrant jamais les erreurs de validation. Je vais essayer cela et confirmer. – jlrolin

+0

Oui, dans ce cas, si vous renvoyez false, la boîte de dialogue affichera les erreurs. – Ryley

Questions connexes