javascript - jQuery Select2 - 通过数据属性获取最大可选值

标签 javascript jquery select jquery-select2

这是我的 select2 字段的 html 代码。

<select data-init-plugin="select2" data-max="4" multiple="" id="mls" name="mls" class="select2 form-control full-width ajax-supported select2-hidden-accessible" data-callback="getAgents" tabindex="-1" aria-hidden="true"></select>

这是 select2 JavaScript 代码。

$('.ajax-supported').select2({
                ajax: {
                    dataType: 'json',
                    multiple: true,
                    type: "POST",
                    data: function (term) {
                        return {
                            '_token': $('#_token').val(),
                            name: $(this).attr('name'),
                            callback: $(this).data('callback'),
                            q: term.term,
                        };
                    },
                    url: '{{ url('listing-field-ajax-callback') }}',
                    processResults: function (data) {
                        return {
                            results: $.map(data, function (item) {
                                return {
                                    text: item.itemName,
                                    id: item.id
                                }
                            })
                        };
                    },
                },
                minimumInputLength: 1,
                maximumSelectionLength: maximum_selectable_items, // this is where i want 4 from data attribute data-max=4
            });

现在我想获取数据属性 data-max = 4 并且我想在我的 MaximumSelectionLength 中使用它并想要控制所选项目的数量。我如何从选择的 HTML 中获取数据属性并在我的 JavaScript 中使用它?

最佳答案

嗯,我尝试了这段代码,它有效。

$.each($('.ajax-supported'), function(k, field) {
                var max;
                console.log(field);
                if($(field).data('max')) {
                  max =  parseInt($(field).data('max'));
                }
                else {
                    max = 1;
                }
                $(field).select2({
                    ajax: {
                        dataType: 'json',
                        multiple: true,
                        type: "POST",
                        data: function (term) {
                            return {
                                '_token': $('#_token').val(),
                                name: $(field).attr('name'),
                                callback: $(field).data('callback'),
                                q: term.term,
                            };
                        },
                        url: '{{ url('listing-field-ajax-callback') }}',
                        processResults: function (data) {
                            return {
                                results: $.map(data, function (item) {
                                    return {
                                        text: item.itemName,
                                        id: item.id
                                    }
                                })
                            };
                        },
                    },
                    minimumInputLength: 1,
                    maximumSelectionLength: max,
                });
            });

关于javascript - jQuery Select2 - 通过数据属性获取最大可选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57536004/

相关文章:

javascript - Backbone.js 比较函数,如何实现降序?

javascript - 引用图像 HTML 元素附近最近的表元素

mysql - MySql 中计算列的条件值

javascript - 滚动时动画固定导航 - 错误

javascript - jquery 与 JavaScript

javascript - 使用 jQuery 从包含日期的字符串中获取日期

javascript - jQuery if 语句未捕获#ID

mysql - mysql 中几何列的 col in() 子句

php - Mysql Select Query和IF语句不会返回任何结果

javascript - 每次迭代在 Handlebars 内选择带有 jquery 的元素