日期:2014-05-16  浏览次数:20473 次

jQuery动态加载Select的项目后无法设置默认选中
我用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也不行,请大家指点一下。

------解决方案--------------------
ajax异步有时间问题,在ajax完全加载完成之后,设置选中才可以。你看看是不是时间差的问题
------解决方案--------------------
 $.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");//////////////////////
        }
&nb