2011-11-29 48 views
0

我有一段代码,我一直在寻求帮助,并且遇到了一些我觉得不方便的事情。当我点击“开始”按钮时,它会从当前标签浏览。我想从表单中产生的URL在新选项卡中打开。另外我不能点击回车键,因为它只会将整个窗体加载到一个新窗口中。如何更正“输入”键使用问题,并让我的表单在新选项卡中打开URL。窗体功能是打开一个包含我正在搜索的信息的新URL。这里是我的代码:Javascript表单在新选项卡中打开URL

<script type="text/javascript"> 
function setSearchTermSN(n){ 
    var SN_VALUE = encodeURIComponent(document.getElementById("sn").value); 
    location.href = "http://URL to site.com/perl/search?searchtype=sn&type=2&uid=" + SN_VALUE + "&visualtype=html%2Fen&tabset=person"; 
} 
</script> 

<form target="_blank"> 
Last Name: <input id="sn" type="text" value="" /> 
<input type="button" value="Go" onclick="setSearchTermSN()" /> 
</form> 

这个想法是在输入框中输入姓氏,如琼斯。点击去和形式将替代" + SN_VALUE + "Jones和负载的网址是这样的:

http://URL to site.com/perl/search?searchtype=sn&type=2&uid=Jones&visualtype=html%2Fen&tabset=person

形式目前并替代,但它浏览从中违背了它的目的的搜索框了。我尝试过<form target="_blank">,但它仍然在同一页面中打开该URL。

信贷上面的代码去https://stackoverflow.com/users/904428/david

+0

的进入问题的简单解决方案是从一个表单中删除您输入的元素,你用的形式不是真的做任何事情有它缠在你的元素,有它压在你的文字时输入将其提交表格。另一种选择是在你的表单标签上执行'

' –

+0

实际上,当我点击输入其不提交表单时。它只是在一个新窗口中全部加载表单。我希望功能能够按Enter键并提交表单。 – HarielA4

回答

0
function setSearchTermSN(n){ 
    var SN_VALUE = encodeURIComponent(document.getElementById("sn").value); 
    var newwindow = window.open("http://URL to site.com/perl/search?searchtype=sn&type=2&uid=" + SN_VALUE + "&visualtype=html%2Fen&tabset=person",'name'); 
    return false; 
} 
+0

试过这个,它不起作用 当我点击按钮时,现在什么都没有发生,就像URL在当前页面加载之前一样。 – HarielA4

+0

好吧,这里的工作示例:http://jsbin.com/eduwak/4/edit –

+0

以及您的示例工作得很好,但是当我尝试将它合并到我的页面时,它停止工作。我不知所措。我确实发现了一些新的代码。虽然它现在可以通过返回键提交,但它仍然会以我的搜索表单打开一个全新的空白页面。 – HarielA4

1

window.location仅与当前文档的交易。您需要使用window.open

错过了有关Enter键的其他部分。您需要一个onkeyup事件侦听器,并检查返回键的事件键码,然后运行与点击相同的功能。