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

Posted

技术标签:

【中文标题】jQuery Select2 - 通过数据属性获取最大可选【英文标题】:jQuery Select2 - get maximum selectable by data attribute 【发布时间】:2019-12-23 10:47:08 【问题描述】:

这是我的 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 中使用它?

【问题讨论】:

【参考方案1】:

好吧,我尝试了这段代码,它成功了。

$.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,
                );
            );

【讨论】:

以上是关于jQuery Select2 - 通过数据属性获取最大可选的主要内容,如果未能解决你的问题,请参考以下文章

jquery select2:从 php-mysql 获取数据时出错

jquery select2:从 php-mysql 获取数据时出错

jQuery Select2 onkeyup 没有触发

select2 jQuery插件:获取所选选项的文本值? [复制]

如何从 select2() 下拉 Jquery 中禁用选定属性?

无法获取数组结果以填充 jquery select2