9
votes

Dialogue ASP.NET MVC3 JQUERY UI et validation du client

J'ai un problème avec la validation du client dans l'application ASP.NET MVC3.

Mon code looks: xxx

contrôleur: xxx

et enfin mon point de vue partiel: xxx

dans mon web.config j'ai allumé les paramètres de l'application non obstrissant et clientValidatin.

Si je clique Sur le bouton Soumettre sur la boîte de dialogue JQuery UI, MVC fait une actualisation complète sans validation du client?

Où est le problème?

Merci pour toute aide

EDIT:

dans ma page de mise en page I Inclure ces scripts:

  • jquery.unobtrive-ajax.js
  • jquery.validate.js
  • jquery.validate.unobtrive.js

    EDIT 2

    dans mon exemple I. Je mets: xxx

    avant que j'appelle la boîte de dialogue JQuery UI et la validation du client fonctionne parfaitement. < / p>


0 commentaires

4 Réponses :


0
votes

Inclure les fichiers JavaScript appropriés pour la validation du côté client?

Vérifiez la console JavaScript lorsque vous exécutez l'action de Soumettre, je parie qu'il y a une erreur qui provoque une erreur JavaScript, puis l'action de soumission par défaut du formulaire se lance.


1 commentaires

Vous aurez peut-être besoin de Microsoftajax.js et Microsoftmvcajax.js ? Je ne suis pas sûr, cependant. Je n'ai pas encore eu l'occasion d'utiliser la logique JQuery non obstrive.



29
votes

C'est parce que vous chargez une vision partielle dans une vue qui a déjà été analysée par la bibliothèque JQuery.Validator.unobstrisson. Vous devez demander à la bibliothèque de reproduire la page pour prendre en compte vos attributs de validation partielleView injectés. Lire Ce blog post de la mienne sur le Sujet, j'espère répondre à votre question.


4 commentaires

+1 souhaite que je puisse vous stimuler plus David. Exactement ce que j'ai eu besoin.


@gnome :) Vous pouvez ouvrir son profil et uppoter toutes ses réponses et toutes les questions, tout est possible


@Omu: Bien que cela signifierait que tous les votes seraient probablement invalides à mesure que les votes seraient probablement perçus comme une fraude de vote. Donc, je ne le recommanderais pas.


Cela n'a pas fonctionné pour moi jusqu'à ce que je spécifiais le formulaire précis que l'analyse nécessaire, comme le souligne Jonathan de la réponse. I.e. $. Validator.unobtriver.parse ("# EdidForm");



1
votes

J'ai eu du mal avec ce problème, Après plusieurs heures, j'ai conclu que JQuery rendait l'élément HTML de dialogue, en dehors de l'élément de formulaire. Puisque jquery.validation plugin ne fonctionne que dans l'élément de formulaire, Il est nécessaire de retourner la boîte de dialogue dans la portée du formulaire, cela peut être effectué par la manipulation des événements ouverts suivants:

  $('#dialogDivId').dialog({
      autoOpen: false,
      width: 500,
      height: 500,
      minheight: options.minheight,
      minwidth: options.minwidth,
      modal:false,
      open: function (type, data) {
             $(this).appendTo($('form')); // reinsert the dialog to the form
      }   // And Solve your validation inside Jquery dialog
});


1 commentaires

C'est le problème correct, mais il interfère avec la dialogue UI. Je l'ai résolu avec: Ouvrir: fonction (type, données) {$ (this) .wrap (""); }



3
votes

En plus de câblage de votre bouton d'envoi, comme xxx pré>

Vous devez spécifier le formulaire HTML à analyser, il n'a pas fonctionné pour moi à l'aide du constructeur par défaut. P>

$.validator.unobtrusive.parse("#editForm");   


0 commentaires