【发布时间】:2018-02-15 09:48:32
【问题描述】:
我已经使用 ajax 和 jquery 成功绑定了 asp.net 下拉列表,但是 无法获取该下拉列表的选定值以绑定另一个下拉列表 这是我尝试过但没有获得所需键值的不同代码 这些都赋予文本价值。
var ddl = document.getElementById("<%=ddlKit.ClientID%>").value;
alert(ddl);
var vall = $jq183("[id*='ddlKit']").find('option:selected').val();
alert(vall);
服务器端代码
[WebMethod]
public static ArrayList GetKitDrop(int OrderId)
{
Controller.Pharmacy.PHM001C OBJPHM001 = new
Controller.Pharmacy.PHM001C();
var List11 = OBJPHM001.GetKit(categoryId);
List<KeyValuePair<string, string>> List = new List<KeyValuePair<string, string>>();
var query1 = (from t in List11 select new { t.KIT_ID, t.KIT_NAME });
List = query1.AsEnumerable().Select(item => new KeyValuePair<string,
string>(item.KIT_ID, item.KIT_NAME)).ToList();
ArrayList arr_list = new ArrayList(List);
return arr_list;
}
jQuery
$jq183("[id*='ddlOrder']").live('change', function (e)
{
$jq183.ajax({
type: "POST",
url: "PHM001.aspx/GetKitDrop",
data: "{OrderId:'" + $(this).val() + "' }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var ddlKit = $jq183("[id*=ddlKit]");
ddlKit.empty().append('<option selected="selected" value="0">Please select</option>');
for (var i = 0; i < data.d.length; i++) {
ddlKit.append('<option>' + data.d[i].Value + '</option>');
}
},
failure: function () {
alert("Failed!");
}
});
});
【问题讨论】:
-
你在哪里无法获取值?
-
1)
live()在 很久 之前就被弃用了。请改用on()方法的委托签名,并确保您没有使用过时的jQuery 版本。您至少应该使用 1.12。理想情况下是 3.x,如果您不需要旧版 IE 支持。 2) 不要建立自己的 JSON 字符串。只需向data提供一个对象,它就会对 ytou 的值进行编码 -
jquery 运行正常,这不是版本问题.. 我只是无法获得当前选择的键值.. 你知道为什么吗?
-
@void 这里 $jq183("[id*='ddlKit']").find('option:selected').val();
-
我用的是jquery-1.8.3.min.js这个版本的jquery
标签: jquery