J'utilise jQuery + asp.net webforms, j'utilise aussi le plugin jQuery Validation et le plugin Fancybox. Mon code fonctionne correctement lorsque j'utilise les plugins séparément. Mon formulaire Web est destiné à l'enregistrement des utilisateurs. J'utilise un plugin de validation pour valider mon formulaire avant qu'il ne soit soumis au serveur, le formulaire est validé et soumis lorsque l'utilisateur clique sur un bouton d'image asp.net (qui traduit comme une entrée type = "image" tag html, ID = "btnSave"). Cela fonctionne déjà comme prévu.Afficher Fancybox après validation du formulaire succès
Le plugin fancybox est utilisé pour afficher un document pdf généré de manière dynamique sur un autre formulaire Web. Il fonctionne lorsque l'utilisateur clique sur une ancre (élément "a", ID = "btnShowFancybox").
Je souhaite valider le formulaire en utilisant le plugin de validation lorsque l'utilisateur clique sur le bouton btnShowFancybox, et si la validation réussit, affiche fancybox pour afficher le document pdf. Si la validation échoue, je veux afficher un message (alerte) à l'utilisateur. Je n'ai pas réussi à atteindre cette fonctionnalité.
C'est ce que je l'ai déjà codé:
TETE:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#aspnetForm").validate({
//commented for simplicity
});
});
</script>
</head>
FORMULAIRE:
<asp:ImageButton ID="btnSave" runat="server" ImageUrl="~/content/img/save.png"
OnClick="btnSave_Click"
OnClientClick="return jQuery('#aspnetForm').validate().form();" />
<a id="btnShowFancybox" class="iframe" href="generatePDF.aspx">
<img src="content/img/showPDF.png" />
</a>
Je dois mettre en œuvre la validation du formulaire, après que l'utilisateur clique sur btnShowFancybox, si la validation échoue, n'affiche pas la fancybox. Je l'ai essayé ceci:
//changed href attribute of btnShowFancybox to "#", and inserted this code
//after: jQuery(document).ready(function() {
//and before: jQuery("#aspnetForm").validate({
//what I'm trying to do here is to set the proper href only if form is valid,
//then to call my fancybox to show pdf to the user, because the call to .fancybox didn't work I tried trigger the click event directly. and.. didn't work.
jQuery("#btnShowFancybox").click(function (e) {
var validForm = jQuery('#aspnetForm').validate().form();
alert(validForm);
if(validForm) {
jQuery("#btnShowFancybox").attr("href", "generatePDF.aspx");
jQuery("#btnShowFancybox").fancybox({
'frameWidth' : 1000,
'frameHeight': 700,
'overlayShow': true,
'hideOnContentClick': false
});
jQuery("#btnShowFancybox").fancybox().trigger('click');
}
else {
alert("form is not valid");
jQuery("#btnShowFancybox").attr("href", "#");
}
});
J'ai essayé aussi de créer une fonction JS et définir l'attribut onclick de btnShowFancybox pour appeler cette fonction. la fonction valide le formulaire et si elle a réussi jQuery essayé ("# btnShowFancybox"). fancybox (..., mais cela n'a pas fonctionné non plus.Pour clarifier, btnSave ne devrait pas montrer fancybox, seulement btnShowFancybox devrait. Aide nécessaire ... s'il vous plaît
Est-ce que quelqu'un a une idée? – madval