它适用于get方法和窗口位置,但我只需要使用post方法提交表单。删除内容的帖子方法更安全。所以我需要一个提交方法并调用该特定表单。怎么做?
html(Laravel):
<form method="POST" action="/admin-sdk/messages/delete/{{ $mes->id }}" class="genposts" data-postid="{{ $mes->id }}">
<input type="hidden" name="_method" value="DELETE">
{{ csrf_field() }}
<button type="submit" class="fa fa-trash btn-sm btn-danger" aria-hidden="true"></button>
</form>
jquery的:
$('.genposts').on('click', function(event){
event.preventDefault();
var postId = $(this).attr('data-postid');
var texttitle = $(this).parent().prev().prev().prev().text();
$('#post-body').text(texttitle + ';');
$('#edit-modal').modal();
function deleted() {
$(this).off('submit').submit();
return true;
}
$('#modal-save').on('click', deleted());
});
答案 0 :(得分:0)
function deleted() {
$(this).off('submit').submit();
return true;
}
$('#modal-save').on('click', deleted());
这样就可以了。 --------- ^
在删除方法的末尾看到那个()?这使它执行。创建事件绑定时,它需要函数引用,而不是执行。因此,由于您正在执行实际绑定的方法,因为单击处理程序是从该方法返回的内容,这是一个布尔值&#39; true&#39;,这是无效的。将其更改为:
$('#modal-save').on('click', deleted);
接下来是删除方法。
$(this).off('submit').submit();
如果&#39; #modal-save&#39;是表单内的一个按钮,调用它上面的submit()没有意义。您想要提交按钮的表单,该表单可以是以下任一项:
$(this).trigger('click');
$(this).closest('form').submit();
一个问题是你正在为genposts click事件处理器内部的模态保存创建绑定,这可能导致多个绑定,如果是这种情况应该避免。