使用jquery表单插件通过ajax上传表单

使用jquery表单插件通过ajax上传表单,jquery,jquery-plugins,jquery-forms-plugin,Jquery,Jquery Plugins,Jquery Forms Plugin,我正试图上传以下表格 <form id="filesend" enctype="multipart/form-data" method="post" action="upload.php"> Choose the file you want to send <br> <input name="file" type="file"><br><input type="submit"></form> 选择要发送的文件 使用以下j

我正试图上传以下表格

<form id="filesend" enctype="multipart/form-data" method="post" action="upload.php"> Choose the file you want to send <br> <input name="file" type="file"><br><input type="submit"></form>
选择要发送的文件

使用以下jquery代码

<script>
$('document').ready(function() { 
var options= { target:'#close'}
$('#filesend').submit( function (){
$(this).ajaxSubmit(options);
          return false;         
})})
</script>

$('document').ready(函数(){
var options={target:'#close'}
$('#filesend')。提交(函数(){
$(此).ajaxSubmit(选项);
返回false;
})})
但是什么都没有发生,表单提交时就像一个普通的html表单一样,并导航到upload.php,是的,我已经包含了这个插件。任何关于我可能出错的想法

编辑


我只是注意到一些有趣的事情。如果我通过chrome的调试器,观察执行的每一步,文件就会被上传到数据库两次。但是在没有任何断点的情况下进行检查,结果只会上载一次。

此部分存在问题:

$(#filesend).submit( function (){
    $(this).ajaxSubmit(options);
    return false;         
})
选择器应该是一个字符串,因此:
$(“#filesend”)
-请注意单引号(也可以使用双引号)


没有它们,它试图将名为
#filesend
的变量的值传递给函数;我不确定这是否是一个有效的变量名,因此它可能会引发一个错误-检查浏览器的开发人员工具控制台会告诉您是否因为它而引发了错误。

通过ajax无法上传文件。您可以使用IFrame上传文件,而无需刷新页面。您可以在此处查看更多详细信息:


XHR2支持通过AJAX上传文件。例如,通过FormData对象,但不幸的是,并非所有/旧浏览器都支持它。

我认为您不能使用Ajax提交文件。基于JQuery的文件上传插件允许您“很好地”显示文件上传输入框。

代码中存在syantax问题

仔细看看这里

$('#filesend').submit( function (){
$(this).ajaxSubmit(options);
          return false;         
})});

选择器需要结束ins字符串,即
“#filesend”

不,这无法修复它,尽管我没有注意到。。。还有什么我可能错过的吗?根据插件文档,它支持文件上传,必要时可能会在后台使用
。有可能的话,我的解决方案是:如果需要,请毫不犹豫地询问mare的解释。