使用select2:opening调用中的值作为ajax自动完成数据参数的输入

tw1742

我正在动态生成结果表,并且每行中的一个单元格包含一个自动完成功能。我正在使用Select2来显示自动完成选项,并从每行唯一的ajax数据和自定义数据中填充下拉列表。我的ajax数据来自我的Python应用程序方法,并且我正在使用POST将变量发送回Python方法,以用于生成自定义数据。设置方法如下:

$(".js-example-tokenizer-ajax-data").select2({
            tags: true,
            createTag: function (params) {
                return {
                  id: params.term,
                  text: params.term,
                  newOption: true
                }
            },
            templateResult: function (data) {
                var $result = $("<span></span>");
                $result.text(data.text);
                if (data.newOption) {
                    $result.append(" <em>(new)</em>");
                }
                return $result;
            },
            placeholder: 'Select an option',
            maximumSelectionLength: 3,
            ajax: {
                url: '{{ url_for("select2Autocomplete") }}',
                contentType: 'application/json',
                method: "POST",
                dataType : 'json',
                data: JSON.stringify({variable:myValue}),
                processResults: function (data) {
                    return {
                        results: data.resource_list
                    };
                }
            }
        });

我已经从Jinja模板中将select元素的ID设置为一个值。

<select onfocus="this.selectedIndex = -1;" id="{{ key }}" class="js-example-tokenizer-ajax-data" multiple="multiple" miriamId="{{ value }}" style="width:100%">
    <option value="{{ key }}" selected>{{ miriam_name_dict[value] }}</option>
</select>

由于它是动态的,所以我不知道每个选择的ID是什么。我能够得到这样的价值:

$('.js-example-tokenizer-ajax-data').on('select2:opening', function (evt) {
            myValue = document.getElementById(this.id).getAttribute('id');
            console.log("myValue: ", myValue)
    });

我想将myValue用作通过数据变量发送回python方法的变量。有什么方法可以访问myValue以便在自动完成代码中使用?

tw1742

我能够将数据传递回用户单击的select元素的autocomplete方法,如下所示:

$(".js-example-tokenizer-ajax-data").select2({
            tags: true, //Allows for free text input of tag values
            createTag: function (params) {
                return {
                  id: params.term,
                  text: params.term,
                  newOption: true
                }
            },
            templateResult: function (data) {
                var $result = $("<span></span>");
                $result.text(data.text);
                if (data.newOption) {
                    $result.append(" <em>(new)</em>");
                }
                return $result;
            },
            placeholder: 'Select an option',
            maximumSelectionLength: 3,
            ajax: {
                url: '{{ url_for("select2Autocomplete") }}',
                contentType: 'application/json',
                method: "POST",
                dataType : 'json',
                data: function() {
                    var myValue = $(this).attr('id');
                    return JSON.stringify({variable: myValue})
                },
                processResults: function (data) {
                    return {
                        results: data.resource_list
                    };
                }
            }
        });

我无法直接使用{variable:$(this).attr('id')}作为data参数的值,并且确实需要在该值上使用JSON.stringify来使用python方法获取值 jsonData = request.json["variable"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

输入中的自动完成数据

jQuery UI使用Ajax来自动完成数据

使用输入1中的值自动完成输入2

使用select2 ajax数据更新隐藏的输入

Select2按选项值自动完成

如何使用 Ajax 和 Laravel 将自动完成数据提取到他们受尊重的元素中?

上<输入> SELECT2不会触发AJAX调用

使用AJAX数据源时,可以在Select2中设置查询字符串参数吗?

如何基于向量作为源来完成数据帧的列和行中的缺失值

使用Ajax请求作为源数据的Jquery自动完成搜索

jQuery自动完成数据

select2下拉列表是否支持使用ajax并允许用户输入新值?

通过AJAX调用在select2中设置默认值?

如何过滤具有2万个元素的数组中的自动完成数据?

呈现jQuery自动完成数据中存在的html元素

如何从.select2()Ajax调用内部获取<select>的data属性以供select2使用?

Select2 Ajax 选定数据值

使用自动完成的jquery / ajax从php数组获取数据值

使用jQuery设置select2输入的值

使用ng-repeat从select获取文本(select2自动完成)

Select2,Symfony:自动完成远程数据不起作用

使用 AJAX Select2 更改列表中的空按钮或其他值

在select2中使用Ajax时无法获取自定义属性值

如何使用Ajax在select2下拉列表中更新数据

如何使用ajax在select2中显示多个结果数据?

清除自动完成数据jQuery

过滤自动完成数据源

Select2多次调用ajax

Select2自动完成功能无法使用Cordova在iOS上进行选择/点击