我正在使用一个使用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格式...?
答案 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();
});