首页 新闻 会员 周边 捐助

JS ready 中如何设置select 的某个值被选中

0
悬赏园豆:5 [已解决问题] 解决于 2011-01-06 16:50


$(document).ready(function() {
  
    GetUrgamerAuthGameType();

  $("#Sel_AuthGameType").attr("value", 2); --无效
})


function GetUrgamerAuthGameType() {
    $("#Sel_AuthGameType").empty();
    var AuthGameType = '';
    $.getJSON("../ashx/GetUrGamerGameType.ashx", function(json) {
        for (var i = 0; i < json.length; i++) {
            AuthGameType += '<option value="' + $.trim(json[i].gameType) + '">' + json[i].gameDesc + '</option>'
        }
        $(AuthGameType).appendTo("#Sel_AuthGameType");
    });
}

 

 

但是如果在ready 后面加
    $("#btn_sub").click(function() {

    $("#Sel_AuthGameType").attr("value", 2);
    })

就可以,比如:


$(document).ready(function() {
  
    GetUrgamerAuthGameType();

  $("#Sel_AuthGameType").attr("value", 2); --无效

 

$("#btn_sub").click(function() {

    $("#Sel_AuthGameType").attr("value", 2);//这样可以
    })
})

乔尼的主页 乔尼 | 初学一级 | 园豆:174
提问于:2010-12-06 13:32
< >
分享
最佳答案
0

楼主在getJSON回调函数中循环体内就可以根据value是否等于2来决定是否给当前option附加selected="selected"进行选中...因为ajax的异步执行原因造成 $("#Sel_AuthGameType").attr("value", 2);这行代码没有立即执行.

收获园豆:5
三桂 | 老鸟四级 |园豆:3565 | 2010-12-06 22:47
其他回答(1)
0

直接 $("#Sel_AuthGameType").val("") 就可以,不过必须在select中存在。

webaspx | 园豆:1973 (小虾三级) | 2010-12-06 14:32
在ready 中没的用
支持(0) 反对(0) 乔尼 | 园豆:174 (初学一级) | 2010-12-06 15:12
可以的。
支持(0) 反对(0) 沉默的糕点 | 园豆:1786 (小虾三级) | 2010-12-06 15:27
你的代码里面是无效的,因为你GetUrgamerAuthGameType这个方法是个异步的,你只有等待GetUrgamerAuthGameType方法执行完了再设定就可以了。
支持(0) 反对(0) webaspx | 园豆:1973 (小虾三级) | 2010-12-06 16:06
你可以把 $("#Sel_AuthGameType").attr("value", 2); 放到 $(AuthGameType).appendTo("#Sel_AuthGameType"); 这句后面就可以了。
支持(0) 反对(0) webaspx | 园豆:1973 (小虾三级) | 2010-12-06 16:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册