2010-10-07 5 views
0

J'utilise jquery.simplemodal-1.1.1 et jquery-1.2.6.min pour créer un popup modal. c'est mon problème: je peux afficher les fenêtres, peut insérer des valeurs, des champs, etc. J'ai 2 boutons, enregistrer et fermer. quand je clique sur le bouton sauvegarder, il déclenche un événement qui exécute, à partir du code derrière, une procédure de magasin qui insère des dates sur mon db. le problème est, quand je clique sur le bouton de fermeture. J'ouvre les fenêtres modales, ne fais rien et clique sur annuler. Fermez les fenêtres modales. J'ouvre à nouveau les fenêtres modales, remplis les champs et clique sur sauvegarder. Le programme exécute 2 fois l'événement du bouton de sauvegarde, puis insère 2 fois la même information sur le DB. c'est le code javascript ce que je suis en utilisant:jquery modal simple et insérer sur la base de données

$(document).ready(function() 
{ 
    $("#nuovoT").click(function(ev) { 
    ev.preventDefault(); 
    $("#TextBoxPrenot").val(""); 
    $("#msg").text(""); 
    //Open the popup container 
     $("#addTrasport").modal({ 
onOpen: modalOpenAddCustomer, 
onClose: modalOnClose, 
persist: true, 
containerCss: ({ width: "500px", height: "275px", marginLeft: "-250px" }) 
     }); 
    }); 
}); 

function modalOpenAddCustomer(dialog) { 
    dialog.overlay.fadeIn('fast', function() { 
    dialog.container.fadeIn('fast', function() { 
     dialog.data.hide().slideDown('slow'); 
    }); 
    }); 
    dialog.data.find(".modalheader span").html("TITULO"); 
// if the user clicks "yes" 
    dialog.data.find("#ButtonConferma").click(function(ev) { 
/*Valida se si compila almeno uno dei due campi*/ 
    $("#msg").val(""); 
if (($("#TextBoxTrasp").val() == '')){ 
    $("#msg").append("* Devi immetere il nome del trasportatore <br/>"); 
ev.preventDefault; 
return false; 
    } 
    else{ 
    } 
    $.modal.close(); 
    $("#ButtonHiddenAddCustomer").click(); 
    }); 
    dialog.data.find("#ButtonCancel").click(function(ev) { 
    ev.preventDefault(); 
    $.modal.close(); 
    return false; 
    }); 
} 

Qu'est-ce que je fais mal ???

merci d'avance !!!

+0

Pour la mise en forme, sélectionnez votre code et cliquez sur le bouton '101010' en haut pour indentera les 4 espaces;) –

Répondre

1

Le problème est que votre routine modalOpenAddCustomer ajoute l'événement click sur le bouton chaque fois que le modal est ouvert. Par conséquent, la deuxième fois, il existe deux événements de clic sur le même bouton. Soit: Initialise l'événement click en dehors de la routine modalOpen ... c'est-à-dire dans la fonction (document) .ready.

Ou: utilisez « one » au lieu de clic:

dialog.data.find("#ButtonConferma").one('click', function(ev) { 
Questions connexes