用这个最简单的例子级联组合框

时间:2016-11-23 08:41:38

标签: javascript jquery

从服务器端

我将在以下结构中返回数据  results.houses  每个房屋和Id以及Name和门集合的位置。  每个Door都有IdName

 $.each(results.houses, function (index, value) {
    $('#HouseId').append('<option value="' + value.Id + '">' + value.Name + '</option>');   
    var selectedHouse = results.SelectedHouse[0].Id;  

    $('#HouseId').val(selectedHouse);
    $('#HouseId').combobox('refresh');
 }

如何使用#DoorId填充Doors组合框 如果我已经从变量selectedHouse上面知道选定的房子。

更新

json数据以下列格式从服务器端控制器返回

var _houses = HousesRepository.All().Select(x => new
{
    Id = x.Id, Name = x.Name,
    Doors = x.Doors.Select(a => new { Id = a.Id, Name = a.Name, IsDefault = a.IsDefault })
});

var data = new 
{
    selectedHouse = new[] { new { Id = 1, Name = "House 100 "} },
    houses = _houses    
}    
return Json(data);

1 个答案:

答案 0 :(得分:0)

您可以尝试将所选标签添加到所选元素:

 $('#HouseId').find('option[value="'+selectedHouse+'"]').prop('selected',true);

或更好

var selectedHouse = results.SelectedHouse[0].Id;  
var selected ='';
if(value.Id == selectedHouse) {
 selected = "selected"
}
$('#HouseId').append('<option '+selected+' value="' + value.Id + '">' + value.Name + '</option>');
$('#HouseId').combobox('refresh'); 
相关问题