Javascript 所选Jquery无法在ajax上运行
关于Jquery,我面临一个奇怪的问题。我在一个弹出窗口中有一个多选框,其选项是使用ajax调用填充的。不幸的是,jqueryselected无法处理它。但是如果我在同一个地方使用静态多选择框,它就可以正常工作。我在谷歌上搜索了很多,但找不到解决办法 以下是我的HTML代码-Javascript 所选Jquery无法在ajax上运行,javascript,jquery,html,ajax,jquery-chosen,Javascript,Jquery,Html,Ajax,Jquery Chosen,关于Jquery,我面临一个奇怪的问题。我在一个弹出窗口中有一个多选框,其选项是使用ajax调用填充的。不幸的是,jqueryselected无法处理它。但是如果我在同一个地方使用静态多选择框,它就可以正常工作。我在谷歌上搜索了很多,但找不到解决办法 以下是我的HTML代码- <select multiple class="tid form-control assign_teacher_dropdown" name="assign_teacher[]"> </select>
<select multiple class="tid form-control assign_teacher_dropdown" name="assign_teacher[]">
</select>
输出-
注意:多选按钮位于模式内
注意:静态多选在同一位置可以正常工作
非常感谢您的帮助。提前谢谢
到目前为止,我已经试过了-
获取变量中的所有选项,并使用.html而不是追加
尝试将动态类与.assign\u teacher\u下拉列表一起分配,并在该动态类上调用.Selected。
从ajax调用中分离.select并使用单独的函数调用它。
它不起作用的原因是,在添加任何选项之前,会在动态创建的弹出窗口上调用所选函数。使用$.each函数时,它会立即返回并异步调用谓词函数。您需要等待所有选项添加完毕,然后再调用Selected 或者,您可以在添加选项之前使用它们的动态API
$form_字段。TriggerSelected:已更新 发布您的响应或创建Fiddle我已经添加了输出@EWINK感谢您的更新,但对我来说,没有示例响应是不够的。希望有人能帮助您。如果有任何错误,请检查您的浏览器控制台。@EWINK,我也添加了响应,控制台中没有错误。
$.ajax({
url: '/getclass/'+id,
type: 'get',
dataType: 'json',
success: function (response) {
if(response.status == '200') {
var class_info = response.class;
var teacher_info = class_info.teacher;
$('.assign_teacher_dropdown').empty();
$('.ttterm_dropdown').empty();
if(!teacher_info){
$('.assign_teacher_dropdown').append('<option value="">Please select one</option>');
}
$('.class-id').val(class_info.id);
$('.class-name').val(class_info.class_name);
$('.class-code').val(class_info.class_code);
$('.start-date').val(class_info.start_date);
$('.end-date').val(class_info.end_date);
var teacherDropdown = '';
$.each(response.teachers, function( index, value ) {
var optionSelected = '';
if(teacher_info) {
if(response.selected_teacher.indexOf(index) !=-1){
var optionSelected = 'selected';
}
}
teacherDropdown = '<option '+optionSelected+' value="'+index+'">'+value+'</option>';
$('.assign_teacher_dropdown').append(teacherDropdown);
});
$.each(response.terms, function( index, term ) {
var optSelected = '';
if(term) {
if(index == class_info.term_id){
var optSelected = 'selected';
}
}
var termDropdown = '<option '+optSelected+' value="'+index+'">'+term+'</option>';
$('.tterm_dropdown').append(termDropdown);
});
$('.chosen-container-single-nosearch').hide();
$('.assign_teacher_dropdown').show();
$('.tterm_dropdown').show();
$('#class-update-modal-update').modal('show');
}
else {
validation.html(getMessage(response.message, 'danger'));
}
window.scrollTo(0, 0);
$(".chosen-select").chosen(); ////for static multi select which is working fine
$('.assign_teacher_dropdown').chosen(); ////it is not working
}
});
response.teachers = Object { 2ee71930-70f9-11e7-8040-0744cf2f827d: "Raihan2 Razi2", 47e2f900-6c7d-11e7-98d2-ebfd03a47749: "Teacher -1", 5873df40-7028-11e7-a3a6-4b6f2ca6ed6b: "Teacher Akter", 0ad51850-7107-11e7-a380-8b0b33c8ce62: "Rakib-3 Hasan-3", 63cd0d30-7105-11e7-b09d-a7232d9caeba: "Rakib-2 Hasan-2", 6c2ab790-70f7-11e7-a4f5-aba1de53d767: "Raihan1 Razi1", a6a47520-70f3-11e7-85e1-d760ee2c8a38: "Raihan Razi", 331ba070-7114-11e7-bdd1-2107af6559b4: "Rakib-4 Hasan-4", cbf1d490-7028-11e7-bab1-97745facf387: "Teacher Mizan" }
teacher_info = {id: "5873df40-7028-11e7-a3a6-4b6f2ca6ed6b", email: "akter@wearedando.com", first_name: "Teacher", last_name: "Akter", dob: null, …}