javascript – 替代嵌套在另一种形式的Ajax上载表单

我有一个HTML表单来编辑我在我工作地点的数据库系统中的人员的详细信息.表单的一部分允许用户上传该人的图片.然而,这给我带来了麻烦,因为我试图通过让用户上传图片并在提交要保存的人员详细信息之前成功上传图片来使表单更加Ajax-y.给我带来麻烦的部分是它似乎需要一个嵌套的表单(即详细信息表单中的上传表单),如下所示:

我希望它的工作方式是用户填写表单的详细信息,选择图片并点击“上传”按钮,然后在上传文件时进行AJAX更新,以便他们可以看到按下最后的“提交”按钮之前的图片.

是否有一种很好的方法可以让上传表单在“详细信息表单”内部(至少在页面显示)但不嵌套在HTML中的详细信息表单中?

最佳答案
您不能在有效的HTML中将表单嵌套在彼此内部.此外,通过XMLHTTPRequest对象(最常见的AJAX技术)上传文件在大多数浏览器中都不起作用.

不过,一切都不会丢失.对于AJAX上传,您需要使用IFRAME,如下所示:http://www.webtoolkit.info/ajax-file-upload.html

我建议表单的方法是将其拆分为三个表单元素.您将拥有一个表单,其中包含上载表单之前的字段,上载表单以及保存上载表单后的字段的表单.第一个表单没有任何提交按钮.第一种形式的字段以第三种形式复制,作为隐藏输入.当单击最后一个表单的提交按钮时,将运行一些javascript,将第一个表单中的字段数据复制到第三个表单,因此它将以最后一个表单提交.

例如,您的HTML可能如下所示::

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在'',则表示换行,用''切割。
代码实现 option = { backgroundColor: '#080b30', tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...