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