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

JQUERY-在加载下拉列表后设置值,jquery,Jquery,我有这个功能: function loadlist(selobj,url,id_nameattr, nameattr, message){ $(selobj).empty(); $.getJSON(url,{},function(data) { $(selobj).append('<option value="" selected disabled>'+message+'</option>'); $.each(da

我有这个功能:

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]));
        });
    });

}
设置一个值:

$.("#myselect").val(1);
我试着:

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

你能给我一个主意吗

谢谢。

美元.when的参数应该是延迟的,但loadlist不返回任何内容。它应该返回$.getJSON返回的内容:

$.when(loadlist("#myselect", url, "id", "name", "Selecte a value")).done(function(){  $.("#myselect").val(1); });
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]));
        });
    });

}