2016-02-10 86 views
-2

我有以下窗口打開方法:Window.Open與搜索

    <script> 
        function searchForm(form){ 
         window.open("test.php?Search=", "newwindow", "scrollbars=yes", "width=800", "height=600", + form.s.value) 
         return false; 
        } 
       </script> 

       <form method="get" onsubmit="return searchForm(this)" class="form-inline" role="form" /> 
        <div class="form-group"> 
         <input class="form-control input-sm" name="s" type="text" onFocus="if (this.value == 'Search Events') {this.value='';" /> 
        </div> 
         <button type="submit" class="btn btn-text">Lookup Existing Data</button>    
       </form> 

我希望新的窗口使用上述參數打開,但是當我將它們添加,它打破了在搜索的數據,如果我刪除了參數值,它可以工作,但窗口會在新選項卡中打開。

+0

如果你在'+ form.s.value'中刪除'+'會怎麼樣? – putvande

+0

如果在'open()'末尾添加'form.s.value'到***第一個參數***(在'Search ='後面)而不是隨機地怎麼辦? – deceze

+0

嗨putvande,我試過,但它仍然無法正常工作,它只是使用參數打開新窗口,但剝去了搜索條件。 – Lee

回答

1

您需要將您的數據追加到URL!您推動代碼將字符串追加爲自己的參數,而不是構建URL的語句的一部分。

此外,窗口描述參數需要作爲參數單個進行傳遞。

最後,您需要在將數據放入數據格式(如URL)時轉義用戶輸入。

window.open(
    "test.php?Search=" + encodeURIComponent(form.s.value), 
    "newwindow", 
    "scrollbars=yes,width=800,height=600" 
);