我用jQuery定义了一个function动态加载了Select的所有项目,然后在另一个function中调用这个函数后再使用$("#XXXX").val(1)这样的方式实现选中Select中的某项,无法实现。请各位帮忙看看;代码如下:
CookBook.Cuisine = function () {
    $.ajax({
        type: "POST",
        contentType: "application/json;utf-8",
        dataType: "json",
        data: "{}",
        url: "../CookBook/CookBook.asmx/CookBookcCuisine",
        success: function (result) {
            var json = eval("(" + result.d + ")");
            var html="" ;
            $.each(json, function () {
                html += "<option value=" + this.cid + ">" + this.cuisine + "</option>\r\n";
            });
            $("#cCuisine").append(html);
        }
    });
};
这个函数实现Select下拉列表的动态加载
CookBook.Cuisine();
                $("#cCuisine").val("1");
在另外一个函数里面先调用之前定义的函数,然后通过val来实现选中,不行,通过attr也不行,请大家指点一下。

解决方案 »

  1.   

    ajax异步有时间问题,在ajax完全加载完成之后,设置选中才可以。你看看是不是时间差的问题
      

  2.   

     $.ajax({
            type: "POST",async:false,//////改为同步要么放到success回调里面设置CookBook.Cuisine = function () {
        $.ajax({
            type: "POST",
            contentType: "application/json;utf-8",
            dataType: "json",
            data: "{}",
            url: "../CookBook/CookBook.asmx/CookBookcCuisine",
            success: function (result) {
                var json = eval("(" + result.d + ")");
                var html="" ;
                $.each(json, function () {
                    html += "<option value=" + this.cid + ">" + this.cuisine + "</option>\r\n";
                });
                $("#cCuisine").append(html);
    $("#cCuisine").val("1");//////////////////////
            }
        });
    };