ajax - Bootstrap Selectpicker 不刷新
问题描述
当用户单击编辑图标时,选择选择器的内容会更新然后刷新。然后更新选择器的值,然后再次刷新,但由于某种原因,它没有用所选值更新。
当我在控制台中手动输入相同的代码时,一切正常。
$('#IncWidgetId').val(864)// the value used when breaking in console
$('#IncWidgetId').selectpicker('refresh')
我已确保使用新选项值更新 selectpicker,并确认 deferred 以正确的顺序触发。作为仔细检查,我还分离了.selectpicker('refresh')
以确保它在选择选项之前由于异步而没有尝试触发,但它仍然没有使用所选值更新 selectpicker。
$(document).on('click', '[id^=EditWidgetId-]', function () {
var id = $(this).attr('id').split('-')[1];
var mfg = $(this).data('mfg');
var widgetid = $(this).data('widgetid ');
var mfgSelect = $('input[name=mfg][value="' + mfg + '"]');
mfgSelect.prop('checked', true);
$.when(LoadWidgets(mfg)).then(function () {
console.log('then function');
$('#IncWidgetId').val(widgetid );
}).done(function () {
console.log('done function');
$('#IncWidgetId').selectpicker('refresh');
});
$('#modalWidgetNew').modal('show');
});
function LoadWidgets(mfg) {
var r = $.Deferred();
console.log('before ajax');
r.resolve($.ajax({
url: '/Widgets/FilterWidgetsDropdown',
type: 'GET',
cache: false,
data: { mfg: mfg },
success: function (partial) {
$('#IncWidgetDDArea').html(partial);
$('#IncWidgetId').selectpicker('refresh')
},
error: function (x, e) {
if (x.status == 0) {
alert('You are offline!!\n Please Check Your Network.');
} else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else if (e == 'parsererror') {
alert('Error.\nParsing JSON Request failed.');
} else if (e == 'timeout') {
alert('Request Time out.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
}
})).done(function () {
console.log('after ajax');
return r.promise();
});
}
我错过了什么?
解决方案
此插件的旧版本中存在此类问题。
尝试销毁它并再次初始化。像这样的东西:
$('#IncWidgetId').selectpicker('destroy');
$('#IncWidgetId').selectpicker();
推荐阅读
- python - 从网页中的 H 标签中抓取文本并将其保存到 csv 文件
- python - Python 将 xml 转换为 json 需要一个类似字节的对象
- node.js - 使用 express 和 sequelize 将数据 POST 到外键字段时出现 404 错误
- algorithm - 前缀表达式中的运算符关联性
- excel - 是否可以使用 Graph Rest Api 删除 Excel 表中的所有行?
- java - 为什么我的第二个形状没有出现在我使用 awt 的 JAVA 程序中?
- javascript - MongoDB 更新数组中的项
- javascript - 提交按钮 Javascript 打开输入到文本字段中的 URL
- c - 这是在c中从一个字符指针复制到另一个字符的有效方法吗?
- sql - 选择最高行