我有下面的jQuery来更新一个下拉列表基于另一个下拉列表的选定值:
$("#FirstDropDownList").change(function () {
$.get('/MyController/GetSecondDropDownListValues/' + $(this).val(), function (response) {
var ddlValues = $.evalJSON(response);
var ddlSecondDropDownList = $("#SecondDropDownList");
// clear all previous options
$("#SecondDropDownList> option").remove();
// populate the values of SecondDropDownList
for (i = 0; i < ddlValues.length; i++) {
ddlSecondDropDownList.append($("<option />").val(ddlValues[i].Id).text(ddlValues[i].Name));
}
});
});
似乎只有当提交按钮被按下时回调才有效。
浏览器抛出了一个404错误。它在Chrome, IE7+, Firefox等中运行良好。不幸的是,我们的客户使用IE6。
回答我自己的问题,似乎IE6没有正确地解决路径。我将其修改为从路径中删除控制器名称:
$.get('GetSecondDropDownListValues/' + etc
这似乎可以在IE6和更新版本的IE中解决这个问题。
我有另一个问题,其中回调缩短了第二个下拉列表的宽度(它们都设置为100%)。给它们一个特定的宽度可以解决这个问题,但这并不理想。噢,好痛。