Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 无法覆盖表单。提交()_Jquery - Fatal编程技术网

Jquery 无法覆盖表单。提交()

Jquery 无法覆盖表单。提交(),jquery,Jquery,我试图覆盖表单提交以发送ajax请求 但它不起作用。 只要调用submit()页面就会被重定向 我正在尝试实现类似的功能 这可能是jquery版本的问题,还是我用错了 这是我的尝试: $('#fileUploadField')。在(“change”,function()上{ $(“#上传文件”).submit(函数(e){ 警报(“超控”); e、 预防默认值(); }); }); .hidden2{ 保证金:0; 填充:0; 位置:绝对位置; 排名:0; 右:0; 身高:100%; 字体大小

我试图覆盖表单提交以发送ajax请求 但它不起作用。 只要调用
submit()
页面就会被重定向

我正在尝试实现类似的功能

这可能是jquery版本的问题,还是我用错了

这是我的尝试:

$('#fileUploadField')。在(“change”,function()上{
$(“#上传文件”).submit(函数(e){
警报(“超控”);
e、 预防默认值();
});
});
.hidden2{
保证金:0;
填充:0;
位置:绝对位置;
排名:0;
右:0;
身高:100%;
字体大小:50px;
光标:指针;
不透明度:0;
-moz不透明度:0;
过滤器:Alpha(不透明度=0);
}
img.fileDownload
{
高度:26px;
宽度:26px;
填充:0;
显示:内联块;
垂直对齐:中间对齐;
利润率:0.4px 0;
光标:指针;
位置:绝对位置;
排名:0;
左:0;
}
div.hiddenfileInputContainer
{
位置:相对位置;
显示:内联块;
宽度:27px;
高度:27px;
溢出:隐藏;
垂直对齐:中间对齐;
光标:指针;
}

我不确定这是否有效,我看到您已经在使用
e.preventDefault()--您可以尝试使用
return false
来查看这是否可行

jQuery
submit()
函数似乎设置正确。警报响了吗?(确认提交功能是否实际工作)?如果警报未触发,则它上面的jQuery可能有问题,即(“change”,function(){…}
组件上的
$('#fileUploadField')


另一种选择可能是尝试使用较新版本的jQuery,看看这是否有什么不同(如果确实两个函数都在执行,并且警报正在触发)…

我不太确定您想要的是什么,但是如果您只想基于文件上载字段的
更改
处理程序覆盖表单操作,您可以执行以下操作:

$("#upload_file").submit(function(e) {
    if (this.id === 'upload_file') {
        e.preventDefault();
        // do ajax here;
        alert(this.id);
    } 
});

$('#fileUploadField').on("change", function(e) {
    $("#upload_file").submit();
});

我尝试返回true和false,并且使用了最新的jquery仍然不起作用,正在调用onChange事件,并且当仅使用submit()时,提交被正确地触发!显然,我应该在调用它之前覆盖它(这很奇怪),我正在尝试在不离开页面的情况下上载文件,有没有更好的方法?如果您不想离开页面,则需要ajax发出请求,而不是将整个表单提交到后端(即您的
upload.php
操作)。在Ajax请求中,序列化表单数据并将其发布到后端。Ajax请求的成功处理程序可以使用从后端返回的数据执行客户端工作。看,我明白了,实际上我认为我不需要表单,只有输入文件和更改事件就足以调用Ajax。