【发布时间】:2013-03-27 08:39:12
【问题描述】:
所以我得到了一些封闭形式和两个嵌套形式。两个嵌套表单在 buttonclick 上使用 ajax 进行评估,外部表单有一个提交按钮。
简化标记:
<form id="form1" action="default.asp">
//some fields inside a list with unnecessary text
<input type="text" name="shortdesc"/>
<form id="deleteform" action="delete.asp">
//dynamically generated checkboxes
<input type="checkbox" name="deleter" value="somedocument.txt">somedocument.txt<br>
<input type="checkbox" name="deleter" value="some_otherdocument.doc">some_otherdocument.doc<br>
<input type="button" onclick="console.log(this.form); ajaxcall('delete.asp', this.form);" />
</form>
<form id="addfileform" action="upload.asp">
<input type="file" name="file"/>
<input type="button" onclick="console.log(this.form); ajaxcall('upload.asp', this.form);" />
</form>
<input type="button" value="send" onclick="dataValidation(form1),"/>
</form>
选中复选框并“提交”表单时,控制台会记录外部表单,但在选择文件并“提交”该文件时,会记录正确的表单。
有人能解释一下为什么和/或如何解决这个问题吗?
澄清一下:这应该是某个网站(不是 HTML5),您可以在其中提交一些文本字段以要求 CEO 进行一些更改。我现在应该实现一个文件附加。
表单是用 asp classic 处理和创建的(很痛苦,但是……),因为我并不热衷于在整个 two 重定向(一个用于上传,一个用于显示上传的文件)我决定使用 AJAX。
仅供参考:console.log(document.getElementById('deleteform')) 返回 undefined
【问题讨论】:
-
在一个表单中包含两个表单似乎是个好主意。这可能就是问题所在,你为什么要做这样的事情(哦,痛苦)!
-
根据html5 spec,您不能嵌套表单。
标签: javascript forms javascript-events