Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax调用内部表单?_Jquery_Ajax - Fatal编程技术网

Jquery Ajax调用内部表单?

Jquery Ajax调用内部表单?,jquery,ajax,Jquery,Ajax,我有这个功能: 函数deleteDocument(e,文档id,属性id){ e、 预防默认值(); $('editDocumentLoader').css('display','flex'); $.ajax({ 类型:“POST”, 数据类型:“json”, url:window.location.protocol+“/profile/property/document/delete/”+document\u id, 数据:{ “文档id”:文档id, “属性id”:属性id, “_令牌”:C

我有这个功能:

函数deleteDocument(e,文档id,属性id){
e、 预防默认值();
$('editDocumentLoader').css('display','flex');
$.ajax({
类型:“POST”,
数据类型:“json”,
url:window.location.protocol+“/profile/property/document/delete/”+document\u id,
数据:{
“文档id”:文档id,
“属性id”:属性id,
“_令牌”:CSRF_令牌
},
缓存:false
}).完成(功能(响应){
警报(响应);
如果(响应!=“”){
试一试{
$('#document_table').html(response.data);
$('#editDocumentLoader').hide();
}捕获(e){
控制台日志(e)
}
}否则{
控制台日志(“无响应”);
}
}).失败(功能(响应){
控制台日志(响应);
如果(response.status==422){
var errors=response.responseJSON;
}
});
}
在视图中,我在
表单中有以下内容:

<button onclick="deleteDocument(event,{{$document->id}},{{$property->id}})"><i class="fa fa-times"></i></button>


出于某种原因,它提交了我的表单,然后我的ajax调用就不起作用了。有什么建议吗?

按钮的默认类型是提交:

您有两种选择: 修改函数以返回false并将html更改为:

<button onclick="return deleteDocument(event,{{$document->id}},{{$property->id}})"><i class="fa fa-times"></i></button>

更改按钮类型:

<button type="button" onclick="deleteDocument(event,{{$document->id}},{{$property->id}})"><i class="fa fa-times"></i></button>

这几乎可以肯定,因为您没有处理表单的“提交”事件,只有按钮的“单击”事件

将按钮的类型属性设置为
type=“button”
,使其不是自动提交按钮(如果未指定为“提交”,则为默认类型,这意味着单击该按钮将导致表单“提交”因此,在ajax调用有机会运行之前(或者它确实运行了,但您永远看不到结果),表单正在提交并执行完整的回发和刷新页面



应该修复它。

什么是“ajax调用不起作用”意思?它会抛出错误吗?请求是否返回错误响应?响应是否错误?它返回错误响应?错误会说什么?如果没有,为什么说它会返回错误?
url:window.location.protocol+“/profile/property/document/delete/”+document_id
-这将为您获取表单的结果url
http:/profile/property/document/delete/123
-您真的认为尝试并请求这样做有意义吗?这里的选项1没有任何区别。它不会影响单独提交事件的发生。但是选项2是有效的。您可以使用return false应该会停止表单,甚至会触发submit。您也可以在表单上使用onsubmit来执行此操作,但选项1应该仍然有效。我添加了type按钮,但再次使用submit form。您确定页面上没有其他代码会影响它吗?您可以制作一个JSFIDLE来演示此问题吗?按钮类型为=“按钮”不应该导致表单提交。好的,很好。但这是一个单独的问题。我指出的是阻止ajax运行(或者至少阻止您查看结果)。更改数据类型是让ajax调用本身工作。
<button type="button" onclick="deleteDocument(event,{{$document->id}},{{$property->id}})"><i class="fa fa-times"></i></button>