2012-08-03 103 views
3

我有一個下拉列表,當我從列表中選擇一個項目時會打開一個新窗口。如何將下拉列表值傳遞到URL中的新窗口?通過URL中的下拉列表中選定的值

我的代碼如下所示:

<asp:DropDownList ID="ddlAdd" runat="server" CssClass="ddl" OnChange="javascript:openWindow('add.aspx?ddlAddValue=', 800, 885)"> 
    <asp:ListItem>One</asp:ListItem> 
    <asp:ListItem>Two</asp:ListItem> 
    <asp:ListItem>Three</asp:ListItem> 
</asp:DropDownList> 

這是JavaScript函數:

function openWindow(url, windowHeight, windowWidth) 
{ 
    var centerHeight = (screen.height - windowHeight)/2; 
    var centerWidth = (screen.width - windowWidth)/2; 
    var features = "height=" + windowHeight + ", width=" + windowWidth + ", top=" + centerHeight + ", left=" + centerWidth + ", scrollbars=" + 1; 
    var popUp = window.open(url, "", features); 
} 
+0

可以傳遞的openWindow(這一點,「添加.... - 那麼你應該能夠做到功能openWindow(sel,url ..)然後window.open(url +「?val =」+ encodeURIComponent(sel.value) – mplungjan 2012-08-03 17:51:52

回答

3

你可以簡單地指this.value得到基本選擇的價值。

OnChange="javascript:openWindow('add.aspx?ddlAddValue=' + escape(this.value), 800, 885)" 

而且,這是很容易在jQuery中處理,如果這就是你怎麼卷:

$(function(){ 

    $('select[id$=ddlAdd]').change(function() { 

     var addValue = $(this).val(); 

     if (addValue) { 
      // window opening logic here 
     } 

     return false; 
    }); 
}); 
+0

謝謝你的回答!非常好。 – Deeds 2012-08-03 18:02:11

+0

我喜歡直接使用this.value(+1) – freefaller 2012-08-03 18:02:43

1

您可以直接通過下拉對象到這樣的JavaScript ...

onchange="openWindow('add.aspx?ddlAddValue=', 800, 885, this)" 

(注意,您不需要在onchange com中使用javascript:前綴普通話 - 瀏覽器已經知道它的JavaScript)

,然後在功能...

function openWindow(url, windowHeight, windowWidth, dd) 
{ 
    url = url + encodeURIComponent(dd.options[dd.selectedIndex].value); 
    ... 
+0

好的替代方案,填充對ddl的引用+1 – 2012-08-03 18:03:31

+0

謝謝!刪除了「javascript:」前綴。 – Deeds 2012-08-03 18:05:41

相關問題