<asp:DropDownList runat="server" id="DropDownList1"
DataSourceID="spdatasource1" DataValueField="CategoryName"
AutoPostBack="false">
</asp:DropDownList>
此asp.net dropdonwlist控件呈现以下html。它是数据绑定到sharepoint列表。正在动态填充下拉选项。我试图操作选择一个选项重定向到这样的链接:它确实被重定向到网站,但它总是传递第一个选项值。如果我选择癌症,它仍然是http://somesite/events/Pages/default1.aspx?cat=Select类别..为什么??
<select name="ctl00$PlaceHolderMain$ctl00$DropDownList1" id="ctl00_PlaceHolderMain_ctl00_DropDownList1">
<option value="Select Category">Select Category</option>
<option value="All Categories">All Categories</option>
<option value="Cancer">Cancer</option>
<option value="Health Lecture">Health Lecture</option>
<option value="Heart Health">Heart Health</option>
</select>
Jquery用于获取选项并传递给url:
var selectedOption = $("#ctl00_PlaceHolderMain_ctl00_DropDownList1 option:selected").val();
$("#ctl00_PlaceHolderMain_ctl00_DropDownList1").change(function(e) {
window.location.href = 'http://somesite/events/Pages/default1.aspx?cat=' + selectedOption
});
答案 0 :(得分:0)
因为您在将功能绑定到您选择下拉列表的更改事件的块之前设置了selectedOption
的值。
代码运行时。 $("#ctl00_PlaceHolderMain_ctl00_DropDownList1 option:selected").val()
的值是“选定类别”。然后在您的函数中使用该值。
您的函数需要在更改对象时从对象获取值,方法是使用$(this)
获取对函数内对象的引用。
$("#ctl00_PlaceHolderMain_ctl00_DropDownList1").change(function(e) {
window.location.href = 'http://somesite/events/Pages/default1.aspx?cat=' + $(this).val();
});