jquery简单模态和插入数据库

时间:2010-10-07 10:00:22

标签: javascript asp.net jquery

我使用jquery.simplemodal-1.1.1和jquery-1.2.6.min来创建模态弹出窗口。 这是我的问题: 我可以显示窗口,可以插入值,fiels,ecc。 我有2个按钮,保存并关闭。当我点击“保存”按钮时,它会触发一个事件,该代码从代码后面执行一个在我的数据库中插入一些日期的存储过程。 问题是,当我点击关闭按钮。我打开模态窗口,不做任何事情,然后点击取消。关闭模态窗口。我再次打开模态窗口,填写字段并单击保存。程序执行保存按钮事件2次,然后在DB上插入2次相同信息。 这是我正在使用的javascript代码:

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

我做错了什么???

事先提前!!!

1 个答案:

答案 0 :(得分:1)

问题是你的modalOpenAddCustomer例程每次打开模态时都会在按钮上添加click事件。因此,在第二次,同一按钮上有2个点击事件。

或者:在modalOpen ...例程之外初始化click事件 - 即在(document).ready函数内。

或者:使用“one”代替点击:

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