javascript / jquery:创建并发布虚拟表单

时间:2013-05-23 10:41:17

标签: javascript jquery

在javascript中,我有一些我希望发送的数据作为帖子(不是ajax)。它应该与用户单击提交按钮的行为相同。但是,我没有实际的表格。数据从页面收集到各种变量中,包括我编码为json的数组。

我可以使用display:none创建一个html表单,将值放入此表单,然后触发不可见的提交按钮。还有更好的方法吗?

3 个答案:

答案 0 :(得分:6)

如果你不想/不能使用Ajax,那么你必须使用一个表单,这将刷新你的浏览器:

 $('<form action="urlToServer" method="POST"></form>')
    .append('<input name="data" value="' + yourJSONData + '" />')
    .submit()
;

答案 1 :(得分:5)

海报“Claudio Bredfeldt”正在走上正确的道路,但他省略了使这项工作成为必要的一些重要信息。

除非将表单附加到DOM,否则表单无法在所有浏览器中提交。所以你需要做的是更像这样的事情:

var $form = $('<form action="http://myurl" method="POST">');
$form.append('<input name="name" value="bob" />');
$form.appendTo($('body')).submit();

或者,您可能希望将某些css附加到表单,以便在导致表单发布事件发生时,用户不会看到它。您也可以选择在发布后“删除”表单元素,以便“后退”事件不会错误显示,具体取决于浏览器缓存行为。

答案 2 :(得分:0)

在ajax之外执行此操作的最佳方式可能是您使用隐形表单进行描述的方式。但问题很奇怪。