将表单提交到新的自定义大小窗口

时间:2015-03-06 16:26:50

标签: javascript html forms

所以我知道这是一个愚蠢的问题,但我还没有能够找到我具体问题的准确答案。我尝试将提交按钮更改为常规按钮并添加onClick事件...没有骰子。我正在尝试将表单提交到新的自定义大小的窗口(因此不是Chrome中的新标签等)。我已经得到它所以它在新窗口中打开新页面上提交的表单数据,但自定义大小的窗口也打开为空白页面。

<form action="Upload.cfm" target="_blank" enctype="multipart/form-data" method="post" onSubmit="window.open('', 'mywindow3','left=0,width=900,height=600,z-index=20, resizable=yes, scrollbars=yes');">

如果我删除onSubmit javascript,它只会打开一个新标签(再次,不是我想要的)。如果我删除target="_blank",它只会打开一个新标签。

我真正想做的是将onSubmit事件中的window.open维度应用于提交的表单页面,而不是一个无关的空白页面。

2 个答案:

答案 0 :(得分:3)

您可以这样做:

正常设置操作,为target属性设置自定义名称,并将button类型设置为button,而不是submit(我们将通过javascript提交):

<form id="myform" method="post"  enctype="multipart/form-data" action="Upload.cfm" target="result">
    <input type="text" name="test" value="test">
    <button type="button" id="mybutton">Send</button>
</form>

将“点击”事件设置为button,然后在回调中打开包含window.open()的窗口,并将第一个参数设置为表单的操作,将第二个参数设置为表单的操作目标以及尺寸和其他属性。然后提交表格!

document.getElementById('mybutton').addEventListener('click', function(){
  window.open('Upload.cfm', 'result', 'width=300,height=300');
  document.getElementById('myform').submit();
});

我在最新的Firefox和Chrome中测试了这个。

答案 1 :(得分:1)

比上面的答案更简单的版本和解释,imo:

<form action="Upload.cfm" method="POST" target="customWindow">
  <input type="text" name="test" value="test">
  <button onclick="window.open('Upload.cfm', 'customWindow', 'width=900,height=600'); $(this).closest('form').submit();">
           SUBMIT
  </button> 
</form>