Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提交帖子表单后,打开一个显示结果的新窗口_Javascript_Html_Post - Fatal编程技术网

Javascript 提交帖子表单后,打开一个显示结果的新窗口

Javascript 提交帖子表单后,打开一个显示结果的新窗口,javascript,html,post,Javascript,Html,Post,演示如何提交通过JavaScript中的POST创建的表单。下面是我修改过的代码 var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "test.jsp"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name",

演示如何提交通过JavaScript中的POST创建的表单。下面是我修改过的代码

var form = document.createElement("form");

form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");

var hiddenField = document.createElement("input");  

hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form); // Not entirely sure if this is necessary          
form.submit();
我想做的是在一个新窗口中打开结果。我目前正在使用类似的方法在新窗口中打开页面:

onclick = window.open(test.html, '', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');


根据表单的定义。

如果您希望按照您的问题中的方式从Javascript创建和提交表单,并且希望创建具有自定义功能的弹出窗口,我建议此解决方案(我在添加的行上方添加注释):


我知道这个基本方法:

(一)

(在任何地方)
(二)


”>
var urlAction='whatever.php';
变量数据={param1:'value1'};
变量$form=$('');
$。每个(数据、函数(k、v){
$form.append(“”);
});
$form.submit();

流量窗口最简单的工作解决方案(在Chrome上测试):


....

这就是jquery!他要求的纯JS+1比公认的答案更好,因为它实际上会将结果与OP想要的选项一起放入弹出窗口中。在IE上对我不起作用-它创建了一个具有指定属性的新窗口,然后将结果加载到另一个新窗口中,使上一个窗口为空。@mjaggard:您添加了什么?可能值得建议对此答案进行编辑。@SaurabhNanda据我所知,
form
元素上的
target
属性在中没有被弃用,显然是要保留在中。警告:我必须先将表单附加到文档体,然后才能使用(在FF 17中)。创建一个片段并尝试使用它是无效的。是我缺少了什么,还是您仍然需要
。追加关闭表单标记?我认为这是不完整的,在追加表单后,您应该删除它以获得最佳实践。@theJollySin:通过调用标记上的jQuery,它将变成一个真正的DOM元素,并在插入DOM时关闭。我认为缺少一个appendTo('body'),最后一行应该写为:
$form.appendTo('body').submit()记住将属性id添加到表单元素中,否则即使关闭了弹出窗口阻止程序,在Safari浏览器中也不起作用。又短又甜。谢谢@Naren,在通过JS提交表单时,我在Safari浏览器和(iphone设备)中遇到了问题。我在发布时“网络连接丢失”。如果我尝试将调试器暂停一些“x”秒,然后释放调试器,则其工作正常。请您指导我。请注意,
document.body.appendChild(form)
是必需的,请参阅
<form target="_blank" ...></form>
form.setAttribute("target", "_blank");
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "test.jsp");

// setting form target to a window named 'formresult'
form.setAttribute("target", "formresult");

var hiddenField = document.createElement("input");              
hiddenField.setAttribute("name", "id");
hiddenField.setAttribute("value", "bob");
form.appendChild(hiddenField);
document.body.appendChild(form);

// creating the 'formresult' window with custom features prior to submitting the form
window.open('test.html', 'formresult', 'scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');

form.submit();
<input type=”image” src=”submit.png”> (in any place)
<form name=”print”>
<input type=”hidden” name=”a” value=”<?= $a ?>”>
<input type=”hidden” name=”b” value=”<?= $b ?>”>
<input type=”hidden” name=”c” value=”<?= $c ?>”>
</form>
<script>
$(‘#submit’).click(function(){
    open(”,”results”);
    with(document.print)
    {
        method = “POST”;
        action = “results.php”;
        target = “results”;
        submit();
    }
});
</script>
var urlAction = 'whatever.php';
var data = {param1:'value1'};

var $form = $('<form target="_blank" method="POST" action="' + urlAction + '">');
$.each(data, function(k,v){
    $form.append('<input type="hidden" name="' + k + '" value="' + v + '">');
});
$form.submit();
<form action='...' method=post target="result" onsubmit="window.open('','result','width=800,height=400');">
    <input name="..">
    ....
</form>