有没有办法提交未呈现的form
?
我有特定的场景,我想向服务器提交动态表单。截至目前,我已使用form
创建body
后向jQuery
添加了in memory
。它完美无缺,但我想知道为什么我无法提交form
DOM
而无法呈现var action_url = "/post-url";
$(`
<form action=${action_url} method="POST">
<input type="text" value="name1" name="name1"/>
<input type="text" value="name2" name="name2"/>
<input type="text" value="name3" name="name3"/>
</form>
`).appendTo('body').submit();
。
以下是我尝试过的代码段:
var action_url = "/post-url";
$(`
<form action=${action_url} method="POST">
<input type="text" value="name1" name="name1"/>
<input type="text" value="name2" name="name2"/>
<input type="text" value="name3" name="name3"/>
</form>
`).submit();
所以,为什么我不能这样做:
Sub colortest()
Dim MyPage As Range, currentCell As Range
With Sheets(2).Rows(1)
Set t = .Find("Cut Date", lookat:=xlPart)
Set A = Columns(t.Column).EntireColumn
For Each currentCell In A
If Not IsEmpty(currentCell) Then
Select Case Not IsDate(currentCell.Value)
Case 1
currentCell.Interior.Color = 56231
End Select
End If
Next currentCell
End With
End Sub
当我运行上面的代码时,在控制台中收到以下警告消息:
表单提交已取消,因为表单未连接
答案 0 :(得分:3)
当我们尝试将元素插入到文档中时,它会在附加到文档之前创建一些由文档片段缓存的DOM节点。由文档片段 CAN 缓存的节点注册事件处理程序,并且 CAN 也会被触发,但submit()
的算法会有所不同。
文档片段中的DOM节点是非 活动文档树结构的一部分,并且根据HTML standard documentation,如果表单未连接(关联,创建或任何其他类似术语)到浏览上下文(文档),提交过程将被取消。
进一步阅读:
答案 1 :(得分:0)
表单应该在提交之前在DOM上,因为在加载页面之后,每个元素都附加了一个事件,因此被DOM识别并且jquery或javascript可以操作。但是你在做什么(第二个)甚至不存在于DOM中,所以事件submit()不可用。