在新标签或窗口上显示表单提交的结果

时间:2013-04-29 15:54:06

标签: javascript forms

这个问题已有多种变体,但我没有具体看到这个问题的解决方案。虽然我实际上并不需要这个功能,但是我无法让它起作用!

我有一个字段,允许访问者输入一个URL,然后将其带到那里。

<form name="urlField" onsubmit="return submitURLFieldForm();">
  <input type="text" name="address" id="addressfield" />
</form>

处理这个问题的JS以便不必停止必要的协议(特别感谢@ h2ooooooo):

function submitURLFieldForm() {
var url = document.getElementById('addressfield').value;
if (!url.match(/^[a-zA-Z]+:\/\//)) {
    url = 'http://' + url;
}

window.location.href = url; 
return false;
}

如果我在初始表单标记中添加target="_blank",则无效。为什么?我应该在哪里添加它?

2 个答案:

答案 0 :(得分:1)

您永远不会提交表单。

您有一个事件处理程序,当表单开始提交时,设置location并阻止正常表单提交。

如果要打开新窗口,请使用window.open(url)代替。

答案 1 :(得分:0)

var win=window.open(url, '_blank');
win.focus();

你可以试试这个:)

快乐的编码:)