麻烦与AJAX和Select

时间:2015-08-13 02:24:04

标签: javascript jquery html ajax

我正在使用一个使用AJAX调用的项目,在我的程序中我有一个选择列表,我需要实现select2,但我不能这样做。我的.js文件中的代码是:

function selectAlumnos(){
   $.ajax({
        type : "GET",
        url : lang + '../../../api/select_alumnos',  //the list of data      
        dataType : "json",
        data : {
                cachehora : (new Date()).getTime()
        }
    }).done(function(response){

        var html = '';

        if(response.state == 'ok'){  //add html to the file view
           html = '<select class="select_1" name="select-allalumnos" id="select-allalumnos" onchange="getIconLocation()" >'; //class to include in select2
           html = html + '<option value="-1">...</option>';
            for(var i in response.alumnos){
                html = html + '<option value="' + response.alumnos[i].id + '" >' + response.alumnos[i].nombre + '</option>';
            } //get the list of the data
            html = html + '</select>'; // put the data in the list
        }
        $('#select-alumnos').html(html); //publish the info in the html file


    });

}

在我的视图的html页面中,我有这样的select-alumnos部分:

<label for="select-alumnos" class="select">Alumno:</label>
<span id="select-alumnos"></span>  //here is the call in the AJAX

在这个文件中(html for view)我也把所有select2路径都放到了所需的文件中,我检查了所有文件都没问题,我也包含了这个类(我的js文件中的同一个类):

   $(document).ready(function() {
        $(".select_1").select2(); 
    });
</script>

我做错了什么因为我无法在列表中获得select2格式...?

1 个答案:

答案 0 :(得分:0)

您在创建之前在select2()上呼叫.select_1。在创建元素(将其放入完成函数)后执行此操作

.done(function(response){

        var html = '';

        if(response.state == 'ok'){  //add html to the file view
           html = '<select class="select_1" name="select-allalumnos" id="select-allalumnos" onchange="getIconLocation()" >'; //class to include in select2
           html = html + '<option value="-1">...</option>';
            for(var i in response.alumnos){
                html = html + '<option value="' + response.alumnos[i].id + '" >' + response.alumnos[i].nombre + '</option>';
            } //get the list of the data
            html = html + '</select>'; // put the data in the list
        }
        $('#select-alumnos').html(html); //publish the info in the html file

        $(".select_1").select2(); 

    });