4

当我从列表中选择一个项目时,我有一个下拉列表会打开一个新窗口。如何将下拉列表值传递到 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);
}
4

2 回答 2

4

您可以简单地参考以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;
  });
});
于 2012-08-03T17:53:04.937 回答
1

您可以像这样将下拉对象直接传递到javascript中...

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

(注意,命令中不需要javascript:前缀onchange- 浏览器已经知道它是 javascript)

然后在你的功能中......

function openWindow(url, windowHeight, windowWidth, dd)
{
   url = url + encodeURIComponent(dd.options[dd.selectedIndex].value);
   ...
于 2012-08-03T17:50:50.943 回答