2011-12-12 134 views
2
<form id="search" action=""> 
      <input id="findroom" type="text" class="defaultText" title="Room Name"> 
      <input id="find" type="submit" value="Find"> 
     </form> 
     <script> 

      $(document).ready(function(){ 
       $('#search').submit(function() { 
       var r = "/rooms/"+$('#findroom').val(); 
       open(r); 
       }); 
      }); 
     </script> 

上面的代碼有問題。我正在嘗試生成一個用於Ruby on Rails應用程序的寧靜URL。我可以從表單中生成我需要的URL作爲var'r'。當我使用open()時,鏈接可以正常打開,但會在新窗口中打開。我需要它在同一個窗口中打開。曾嘗試:如何使用javascript在同一窗口中打開URL?

open.(r,'_self'); 

不起作用

還沒有任何運氣:

location.replace 
location.href = 

任何人有什麼想法嗎?

感謝

巴里

+0

window.location = ... –

回答

2

要打開一個新的彈出窗口,使用

window.open(r); 

如果你想重定向當前頁面,使用

window.location = r; 
5

這是因爲

一樣簡單
window.location = r; 
0

正確的語法是

window.open(URL,name,specs,replace) 

你只需要給_self在名稱

Please read more

0

window.open創建一個新的輔助瀏覽器窗口並加載引用的資源,而windo.location允許改變當前窗口的URL。所以你想要的是:

window.location = r; 
0

謝謝大家的幫助。你所有的錢,答案是

e.preventDefault(); 

這是與表單提交併重寫window.location的命令去做。一旦你阻止了它的默認行爲,這是完整的代碼:

<section id="roomsearch"> 
     <form id="search" action=""> 
      <input id="findroom" type="text" class="defaultText" title="Room Name"> 
      <input id="find" type="submit" value="Find"> 
     </form> 
     <script> 

      $(document).ready(function(){ 
       $('#search').submit(function(e) { 
       var r = "/rooms/"+$('#findroom').val(); 
       window.location = r; 
       e.preventDefault();   
       }); 
      }); 
     </script> 


    </section> 

感謝您的時間和幫助。

Barry

相關問題