2011-11-29 43 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事件偵聽器,並檢查返回鍵的事件鍵碼,然後運行與點擊相同的功能。