2017-10-10 71 views
0

当用户单击链接时,表单打开(我使用引导模式与表单init),在提交新记录时创建并添加到页面上所有与jquery和ajax)。preventDefault适用于一种形式,但不适用于同一模式中的其他形式

如果用户点击新添加的项目,将打开相同的表单,ajax将获取数据并预先填充表单。但是这次jquery也会使用Delete按钮创建一个新窗体。

但是当我点击删除按钮时,表单会发出一个完整的(非ajax)请求,并且项目将被删除。

不知道为什么创建操作preventDefault有效(停止表单以完成POST请求),但是当我单击删除按钮/表单时,它会发出完整的请求。

这两个事件处理程序都在同一个匿名函数中。 下面是处理提交事件的jQuery/JavaScript的:

 // save form 
form.on('submit',function(e){ 
    e.preventDefault(); 
    $.when(submitAjaxRequest(this)).then(function(data, textStatus, jqXHR){ 
     if(update){ 
      $this.replaceWith(data) 
     }else{ 
      addInput($this,data); 
     } 
     modal.modal('hide'); 
    }); 
}); 

// delete form 
$('.panel-heading').on('submit','form #deleteForm',function(event){ 
    event.preventDefault(); 
    $.when(submitAjaxRequest(this)).then(function(data, textStatus, jqXHR){ 
     $this.remove(); 
     modal.modal('hide'); 
    }); 
}); 

回答

0

我看不到你的HTML,但如果your're删除形式不是创建表单里面,我觉得选择是错误的,所以事件永远不会被触发,我想你的删除按钮是type="submit",所以你得到的HTML提交。你必须删除空格...

$('.panel-heading').on('submit','form#deleteForm',function(event) { 
.... 

我希望它能帮助

相关问题