javascript - Ajax 模式下的 Jquery Select2 V4 在 IE9 中不起作用

标签 javascript jquery ajax internet-explorer-9 jquery-select2-4

在我的表单的选择元素中使用 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/

相关文章:

Javascript Object.Create() 方法

javascript - IE 和 iframe.elementFromPoint 不传递事件

javascript - jquery ajax请求如何获得成功?

javascript - 如何在没有循环的情况下使用特定选择器选择 sibling 数组的每个 child ?

php - 在Codeigniter中使用Ajax登录( Controller 和模型无法执行查询数据库)

javascript - JQuery——如何实现类似 mac os dock 的显示/隐藏行为的动画?

javascript - 如何使用Javascript在函数内部调用外部库的函数?

jquery - 有人可以解释一下 Google Image Swirl 中可见的效果吗?

javascript - Anythingslider 不适用于 a4j :ajax?

java - 使用 Jackson 通过 AJAX 从 Spring MVC Controller 返回 java.util.List