在我的表单的选择元素中使用 Select2 4.0,那些打算在 Ajax 模式下动态填充的元素在 IE9 中不起作用。它显示一个没有占位符的空选择。
经典模式下的(预填充选择列表)可以正确显示和工作(select2 搜索..)。
在其他页面使用旧版本3.5.2,不会出现该问题...!
这是一个已知问题吗?可以修复吗?
谢谢
这是 JS:
$(".select2Ajax").not(".select2-container").each(function(){
var min = $(this).data('min'); // 3
var configs = {
"width":"100%",
language: $locale, // 'fr'
ajax: {
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term
};
},
processResults: function (data, page) {
return {
results: data
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; },
minimumInputLength: min
};
$(this).select2(configs);
})//.each
HTML:
<select id="contrat_kam" name="contrat[kam]" class="select2Ajax form-control" data-min="3" data-ajax--url="/My/Ajax/Source/url-returning-json-formatted-list/from-search-term">
<option value="">Here is my intitial placeholder</option>
</select>
以及在普通客户端 (Chrome) 中输入 select2 字段时从服务器返回的内容的示例:
[{"id":"75484567","text":"Bestnameever Ronald"},{"id":"12344568","text":"Nameofdude C\u00e9dric"},{"id":"01202795","text":"SecondDudesName John"},{"id":"00709297","text":"Doe John"}]
谢谢
最佳答案
好吧,我解决了我的问题,但这不是 JS/IE 问题。
我在 Symfony 2 下工作。问题出现在表单提交后。出现验证错误时,Symfony 会再次显示表单页面,并在字段上显示错误。
我在 AJAX 模式下使用 Select2,因为选择列表太重而无法处理,几乎导致浏览器崩溃,显示超过 7000 个选项。 因此,我创建了 select(sf2 实体选择列表),其中包含一个用于选择列表的空数组。
但是 如果您尝试使用新值保存表单,而该值不在(空)原始选择列表中,则 SF 不会验证它,并引发验证错误。
所以 您必须添加一个表单 PRE_SUBMIT 事件监听器,以将包含所选值的选择添加到您的 formType 中。 这是完整的其他主题:)
问题是我在表单事件监听器中定义的新 select 没有正确的参数(类、数据属性......),从而阻止了 select2 工作。
我的错!
所以主题宁愿在 Symfony 2 线程中找到自己的位置..
关于javascript - Ajax 模式下的 Jquery Select2 V4 在 IE9 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29510133/