【发布时间】:2012-03-13 11:41:35
【问题描述】:
我有一个从数据库填充的下拉列表列表(使用 ASP.NET)。
这些下拉列表是 ASP 控件,因此按 ID 选择它们是不可行的。
它们是这样命名的:
DD_Manufacturer1
DD_Manufacturer2
DD_Manufacturer3
这些 ASP.NET DropDown 列表有一个与其名称相同的类(示例:DD_Manufacturer1 的类是 ="DD_Manufacturer1")
我正在使用级联 dropdrop(我们将调用第一个选择输入 MyList1 的 ID)。用户从 MyList1 中选择一个选项后,我的一个 ASP DropDowns 变得可见(例如:我在 MyList1 中选择了 Manufacturer1,而 DD_Manufacuturer1 变为可见)
它应该是这样工作的:
Manufacturer1 是从 MyList1 中选择的 MyList1 的选定值被传递到名为 dvMake 的隐藏表单字段 DD_Manufacturer1 变为可见(这是一个 ASP.NET 控件) 用户在 DD_Manfacturer1 中选择一个选项 DD_Manufacturer1 的选定值被传递给名为 hidden-dvModel 的隐藏字段
现在,我想将 DD_Manufacturer1 的选择传递到隐藏字段,以便更容易操作。
到目前为止,这是我的代码:
function onModelChange() {
$("#hidden-dvModel").remove(); //Removes Hidden Field if it already exists
var dvMake = $("#hidden-dvMake").val(); //Get Make Value
var ActiveMake = $("."+dvMake+""); //Derive Active DD List form Selected Make
var ActiveMakeList = "DD_" + ActiveMake.attr('class') + "";
alert(ActiveMakeList);//Succesfully returns DD_Manufacturer1
var SelectModel = ?
$('#phSelect').append("<input type='hidden' id='hidden-dvModel' value='" + SelectModel + "' />");
}
我认为最好的方法是执行通配符选择并检查它是否可见,然后获取其选定值。
那么我将如何对 ID 以“DD”开头的任何元素进行通配符选择,这是可见的,然后获取它的选定值?
var SelectModel = $("[id^=DD_]:visible option:selected").val();返回“未定义”
【问题讨论】:
-
在客户端获取asp.net生成的Id,可以使用;或在 web.config 中使用
;顺便说一句,$("*[id^=dd]:visible option:selected").val() 在我的 FF10 上工作正常 -
请包含生成的 HTML,以便我们看到您正在处理的内容。实际的 HTML 比试图描述它是什么的大量词语更有价值。