Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Jquery插件,用于使用multiselect(用于选择选项的复选框)和延迟加载自动完成_Ruby On Rails_Jquery Select2_Ruby On Rails 6_Jquery Select2 4_Select2 Rails - Fatal编程技术网

Ruby on rails Jquery插件,用于使用multiselect(用于选择选项的复选框)和延迟加载自动完成

Ruby on rails Jquery插件,用于使用multiselect(用于选择选项的复选框)和延迟加载自动完成,ruby-on-rails,jquery-select2,ruby-on-rails-6,jquery-select2-4,select2-rails,Ruby On Rails,Jquery Select2,Ruby On Rails 6,Jquery Select2 4,Select2 Rails,我需要使用multiselect选项实现自动完成功能。multiselect应包含复选框。此外,由于数据量巨大,因此应该可以进行延迟加载。 目前正在使用Select2JS,但面临与Rails的兼容性问题。 共享当前代码 请建议修改当前代码或替代插件以达到上述要求 版本:Rails 6.0.3.4、Ruby 2.7.2、Select2 4.0.7 正在使用的当前代码: Javascript代码 $('#input_field').select2({ placeholder: 'search',

我需要使用multiselect选项实现自动完成功能。multiselect应包含复选框。此外,由于数据量巨大,因此应该可以进行延迟加载。 目前正在使用Select2JS,但面临与Rails的兼容性问题。 共享当前代码

请建议修改当前代码或替代插件以达到上述要求

版本:Rails 6.0.3.4、Ruby 2.7.2、Select2 4.0.7

正在使用的当前代码:

Javascript代码

$('#input_field').select2({
  placeholder: 'search',
  minimumInputLength: 3,
  width: '100%',
  multiple: true,
  query: function(q) {
    var pageSize,
      results,
      that = this;
    pageSize = 20; // or whatever pagesize
    results = [];
    if (q.term && q.term !== '') {
      results = _.filter(that.data, function(e) {
        return e.text.toUpperCase().indexOf(q.term.toUpperCase()) >= 0;
      });
    } else if (q.term === '') {
      results = that.data;
    }
    q.callback({
      results: results.slice((q.page - 1) * pageSize, q.page * pageSize),
      more: results.length >= q.page * pageSize,
    });
  },
  data: #{@data_list.to_json}
});
%input#input_field{:placeholder => "Please select one or more names here", :style => "width:100%;", :name => "keyword", :required => true}/
数据列表

@data_list = [{ "id": 1,"text": "Text 1"},{"id": 2,"text": "Text 2"},{"id": 2,"text": "Text 3"}]
查看代码

$('#input_field').select2({
  placeholder: 'search',
  minimumInputLength: 3,
  width: '100%',
  multiple: true,
  query: function(q) {
    var pageSize,
      results,
      that = this;
    pageSize = 20; // or whatever pagesize
    results = [];
    if (q.term && q.term !== '') {
      results = _.filter(that.data, function(e) {
        return e.text.toUpperCase().indexOf(q.term.toUpperCase()) >= 0;
      });
    } else if (q.term === '') {
      results = that.data;
    }
    q.callback({
      results: results.slice((q.page - 1) * pageSize, q.page * pageSize),
      more: results.length >= q.page * pageSize,
    });
  },
  data: #{@data_list.to_json}
});
%input#input_field{:placeholder => "Please select one or more names here", :style => "width:100%;", :name => "keyword", :required => true}/