所以我知道这是一个愚蠢的问题,但我还没有能够找到我具体问题的准确答案。我尝试将提交按钮更改为常规按钮并添加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
维度应用于提交的表单页面,而不是一个无关的空白页面。
答案 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>