首页 新闻 搜索 专区 学院

jQuery 通过Json填充Select,无法设置Selected

0
悬赏园豆:10 [已解决问题] 解决于 2013-01-29 10:57

代码要实现的功能如下:当Select#selectA更改时,动态改变Select#type的选项,再跟据Select#type获取Select#typeBranch

$("Select#selectA").change(function () {
  $("Select#type").empty();
  var url = "/Admin/Type/GetType/";
  $.getJSON(url, { aid: $("Select#selectA").val() }, function (data) {
    $.each(data, function (i, item) {

      if(item.selected==true)

        $("<option selected='selected'></option>").val(item.Value).text(item.Text).appendTo 
($("Select#type"));
      $("<option></option>").val(item.Value).text(item.Text).appendTo
($("Select#type"));
    });
  });
  $("Select#type")[0].selectedIndex = 1;
  //alert($("Select#type").val());
  $("Select#typeBranch").empty();
  var url = "/Admin/Type/GetTypeBranch/";    
  $.getJSON(url, { sid: $("Select#type").val() }, function (data) {
    $.each(data, function (i, item) {
      $("<option></option>").val(item.Value).text(item.Text).appendTo($("Select#typeBranch"));
    });
  });
});

但是,现在的情况是,生成了Select#type的Option,但是Select#type无值,无法获取Select#typeBranch的Option。

如果alert($("Select#type").val());对话框为空,但是关闭对话框之后,Select#typeBranch获取成功,求解!!!

通过Json获取到的数据如下

[{"Selected":true,"Text":"工人","Value":"9d2a3f05-fa95-4bb7-b1f2-97a1386cbe94"},{"Selected":false,"Text":"农民","Value":"73ffc6c1-a68b-45b7-ba52-21a6c9620ac3"} ]


BorgChen的主页 BorgChen | 初学一级 | 园豆:11
提问于:2013-01-29 01:27
< >
分享
最佳答案
0

$.getJSON是异步,不会等到你服务器返回才执行下面的。

全部放在$.getJSON 里头。

另外不要用 $('select#type')获取,id获取是最快的,不要加标签类型,画蛇添足。

收获园豆:10
Qlin | 老鸟四级 |园豆:2403 | 2013-01-29 08:52

可以了,谢谢

我还以为标签#ID更快。。。受教了。。。

BorgChen | 园豆:11 (初学一级) | 2013-01-29 11:00
其他回答(2)
0

楼上正解

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-29 08:58
0

楼上正解

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-01-29 10:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册