将数据属性添加到selectize.js选项

yon*_*eng 4 html javascript ruby-on-rails selectize.js

我正在为我的项目使用selectize.js.但是我遇到了数据属性问题.我想将数据属性添加到选择选项.我有默认选择如下:

<option data-open-balance="false" selected="selected" value="1">PNP.SI.080416</option>
Run Code Online (Sandbox Code Playgroud)

但是当我为这个选择添加选择时,它变为:

<div data-value="1" data-selectable="" class="selected">PNP.SI.080416</div>
Run Code Online (Sandbox Code Playgroud)

我看到它的"item object"只获得了值和文本.那么,如何将其他数据属性添加到其项目对象中?

t1m*_*m0n 9

我查看了文档,他们说如果你想为元素添加自定义属性,你应该使用dataAttr选项,默认情况下data-data.所以在你的情况下,代码会看起来像这样:

HTML

<select>
    <option data-data='{"openBalance": true}' selected="selected" value="1">PNP.SI.080416</option>
</select>
Run Code Online (Sandbox Code Playgroud)

JS

这里我们提供自定义渲染方法来绘制options我们需要的属性:

$('select').selectize({
    render: {
        option: function (data, escape) {
            return "<div data-open-balance='" + data.openBalance + "'>" + data.text + "</div>"
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

  • 如果有人想使用php,可以使用这个`<option data-data ='<?php echo json_encode($ your_option); ?>'value ='<?php echo $ value; ?>'> <?php echo $ text; ?> </选项>`.在数据数据标签中使用单引号是非常重要的,因为JSON对结构使用双引号. (2认同)
  • @Kyborek,尽管在我看来,这与问题无关,但我已经用您的笔记更新了我的答案,谢谢。 (2认同)