首页 > 解决方案 > Django 自动完成灯:Select2 未显示 AJAX 更新的选定选项文本

问题描述

我有一个带有属性的DAL字段data-html并填充了Select2QuerySetView::get_queryset(). 我已经覆盖了get_result_label(). 对于相同的查询集结果,可能会根据某些条件get_result_label()返回不同的标签。结果标签被正确提取。但是在选择一个选项后,即使在随后更改并从下拉列表中重新选择后,其显示在选择框中的文本仍保持不变。

为了演示,这里有一些连续的屏幕截图。我正在返回当前时间get_result_label()

  1. 初步结果,第一个选项被选中。

初步结果,第一个选项被选中。

  1. 选择了第一个选项 (17:42:08)。获取新结果。

选择了第一个选项 (17:42:08)。 获取新结果。

  1. 在 17:42:29 选择了第二个选项。在框中正确显示。获取新结果。

在 17:42:29 选择了第二个选项。 在框中正确显示。 获取新结果。

  1. 再次选择更新文本 (17:42:56) 的第一个选项。但是在框中它仍然显示原始文本(17:42:08)。

再次选择更新文本 (17:42:56) 的第一个选项。 但是在框中它仍然显示原始文本(17:42:08)。

我错过了什么吗?或者在 DAL 或Select2中是否有任何解决方法?

标签: jquery-select2django-autocomplete-light

解决方案


回答自己的问题:经过反复试验,发现清除select2:selecting事件中的 HTML 似乎有效。

$(('#my_select2_id').on('select2:selecting', function(e) {
    $('#' + this.id).html('');
});

不过,不确定这是否是正确的方法。


推荐阅读