代码之家  ›  专栏  ›  技术社区  ›  SeaBass

select2 select的reach data属性

  •  0
  • SeaBass  · 技术社区  · 7 年前

    是否有方法从select2内访问数据属性?

    $('select').select2({
      ajax: {
        url: url + '&id=' + $(this).attr('data-id')
        //...
      }
    });
    //...
    <select data-id="1"></select>
    <select data-id="2"></select>
    <select data-id="3"></select>
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   tao    7 年前

    要在select2中将自定义参数传递给ajax url,应该使用 data ajax函数:

    $('select').select2({
      ajax: {
        url: "zee/base/url" // base url, no params
        data: function(params) {
          return {
            q: params.term,          // search term
            id: $(this).data('id')   // ta daaaa!
            page: params.page
          };
        },
    
        // moar ajax options
      },
    
      // moar select2 config options
    })
    

    一般来说, this 在select2配置选项中,引用select2实例(它是一个对象)和 在里面 数据 上面概述的函数引用了调用的dom元素select2,因此jquery包装器 $(this) 有一个 .data() 方法。

        2
  •  1
  •   Luay    7 年前

    阅读文档时,它说您可以在html select标记中插入url作为数据类型,如下所示:

    <select data-ajax--url="YOUR DESIRED URL" data-ajax--cache="true">
        ...
    </select>
    

    此url将覆盖调用时在函数内部设置的选项,因此对在html中设置的每个选项使用不同的url。