在带有ajax调用的模态上加载php片段并从表单中发布,导致多次调用它

时间:2013-12-19 12:59:20

标签: php jquery ajax codeigniter

在形式中我有一个模态骨架 - 意味着模态体是空的。我设计了一些动态添加(用于下拉列表)表单并加载ajax后调用,如

    var scriptname,initiator;
    $(".launch-add-form").click(function(e){
         scriptname=($(this).prop('id')).split("-")[0] ;
         initiator=$(this).prop('id');
         $.ajax({
            type:"post",
            url:"<?=site_url()?>/admin/commoncontroller/getform/",
            data:{csrftoken:cct,scriptname:scriptname}          
         }).done(function(res){ $("#modalBody").html(res) ;})       

    });

返回与脚本名称匹配的任何脚本,并将响应呈现给模态体。那么现在从模态我填写表格并保存它正常工作,但问题是在主窗体上有多个下拉菜单,每个都有

      .launch-add-form class

好吧,如果我用一个下拉保存并尝试用其他方法进行保存,那么就像几何级数一样调用ajax保存调用...第一个1个呼叫而不是2个呼叫然后是4个呼叫......

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我猜你是多次分配onClick事件。

尝试解除任何clic事件的绑定,然后再添加新事件:

$(".launch-add-form").unbind( "click" );

所以你的代码将是:

    var scriptname,initiator;

    $(".launch-add-form").unbind( "click" );

    $(".launch-add-form").click(function(e){
         scriptname=($(this).prop('id')).split("-")[0] ;
         initiator=$(this).prop('id');
         $.ajax({
            type:"post",
            url:"<?=site_url()?>/admin/commoncontroller/getform/",
            data:{csrftoken:cct,scriptname:scriptname}          
         }).done(function(res){ $("#modalBody").html(res) ;})       

    });