我尝试用 JqueryFileUpload 小部件替换经典输入文件。
这是我的上下文:
我可以以相同的形式输入一个或多个文件。
该表单旨在创建服务器端对象(每个输入都是该对象的一个字段,每个文件都是链接到主要创建对象的“资源”对象)。这些对象存储在数据库中。
当最终用户提交表单时,我想:
- 做许多验证(对于其他输入)
- 如果一切正常,则触发文件的 ajax 上传。服务器端处理程序创建所需的资源对象。
- 当所有上传完成后(我可以通过使用小部件回调知道这一点),然后我提交主表单(操作表单不是小部件处理程序,而是完成工作并显示消息的页面)以创建主对象:我不想在这里发送文件,而只想发送处理程序发回给我的资源对象ID,以将它们链接到主对象)。
我的问题是,当我触发 fileUpload 提交表单并加载操作表单页面时。处理程序没有被调用。
我用一个简单的页面进行了测试:如果小部件不在表单中,它可以正常工作:
<body>
<div>
<!-- The file input field used as target for the file upload widget -->
<input class="fileupload" type="file" name="files[]"/>
</div>
</body>
但是如果我把它放在一个表单中,表单总是被提交,我无法阻止这一点。
<body>
<form action="myPage.aspx">
<!-- The file input field used as target for the file upload widget -->
<input class="fileupload" type="file" name="files[]"/>
</form>
</body>
我的问题是:
url 选项不会覆盖表单操作吗?
我不能为小部件和包含它的表单使用不同的目标吗?
我可以将多个小部件放在一个表单中吗?