2010-10-07 53 views
0

我正在使用jquery.simplemodal-1.1.1和jquery-1.2.6.min來創建模式彈出窗口。 這是我的問題: 我可以顯示窗口,可以插入值,fiels,ecc。 我有2個按鈕,保存並關閉。當我點擊保存按鈕時,它會觸發一個事件,從後面的代碼執行一個在我的數據庫中插入一些日期的存儲過程。 問題是,當我點擊關閉按鈕。我打開模式窗口,不要做任何事情並點擊取消。關閉模式窗口。我再次打開模式窗口,填充字段並單擊保存。該程序執行2次保存按鈕事件,然後在DB上插入2次相同的信息。 這是我正在使用的JavaScript代碼:jquery簡單模態並插入數據庫

$(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; 
    }); 
} 

我在做什麼錯?

thx提前!!!

+0

對於格式,彰顯你的代碼,然後點擊頂部的'101010'按鈕縮進所有4個空格) – 2010-10-07 10:03:17

回答

1

問題是,您的modalOpenAddCustomer例程每次打開模式時都將點擊事件添加到按鈕上。因此,第二次在同一個按鈕上有兩個點擊事件。

要麼:初始化modalOpen ...例程之外的點擊事件 - 即在(document).ready函數內。

或者:不是點擊使用「one」:

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