JQUERY - 加载下拉列表后设置值

时间:2015-05-25 23:15:41

标签: jquery

我有这个功能:

function loadlist(selobj,url,id_nameattr, nameattr, message){
    $(selobj).empty();
    $.getJSON(url,{},function(data)
    {

        $(selobj).append('<option value="" selected disabled>'+message+'</option>');
        $.each(data, function(i,obj)
        {
            $(selobj).append(
                 $('<option></option>')
                        .val(obj[id_nameattr])
                        .html(obj[nameattr]));
        });
    });

}

我想在加载下拉列表之后:

loadlist("#myselect", url, "id", "name", "Selecte a value");

设定值:

$.("#myselect").val(1);

我在尝试:

$.when(loadlist("#myselect", url, "id", "name", "Selecte a value")).done(function(){  $.("#myselect").val(1); });

赢了工作。

你能给我一个想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

$.when()的参数应该是Deferred,但loadlist不会返回任何内容。它应该返回$.getJSON返回的内容:

function loadlist(selobj,url,id_nameattr, nameattr, message){
    $(selobj).empty();
    return $.getJSON(url,{},function(data)
    {

        $(selobj).append('<option value="" selected disabled>'+message+'</option>');
        $.each(data, function(i,obj)
        {
            $(selobj).append(
                 $('<option></option>')
                        .val(obj[id_nameattr])
                        .html(obj[nameattr]));
        });
    });

}