我执行ajax调用,存储一些数据并在表中添加一行.
在这一行中,末尾有一个删除按钮,因此您可以根据需要立即删除您创建的行.
出于某种原因,当我单击删除按钮时,我被重定向到我用来从数据库中删除数据的ajax调用的deleteurl.当我重新加载页面并按下删除按钮时,它工作正常.
谁知道为什么会这样?
要添加的行:
<tr>
<td>test</td>
<td>
<form class="deleteBuildingForm" method="POST" action="http://127.0.0.1:8000/buildingimage/42" accept-charset="UTF-8">
<input name="_method" type="hidden" value="DELETE">
<input name="_token" type="hidden" value="EEV90wmDNLMd8hg9ilh6zdDAjVShXW9bfOCXdvml">
<button type="submit" class="btn btn-danger">
<i class="far fa-trash-alt"></i>
</button>
</form>
</td>
</tr>
我的jquery代码:
$('.deleteBuildingForm').on('submit', function(e) {
e.preventDefault();
axios.delete($(this).attr('action'), []).then(response => {
$(this).closest('tr').remove();
$('.successMessages').hide();
});
});
解决方法:
我认为问题是你的新行没有绑定到它们的事件处理程序,因为它们是动态创建的.
Event binding on dynamically created elements?
尝试将事件处理程序添加到文档中,该文档始终存在.
$(document).on('submit','.deleteBuildingForm' ,function(e) {
e.preventDefault();
axios.delete($(this).attr('action'), []).then(response => {
$(this).closest('tr').remove();
$('.successMessages').hide();
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。