您可以使用 selected="selected" 在加载时自动 select selectize.js 吗?

Can you use selected="selected" to auto select selectize.js on load?

我正在开展一个项目,其中每个 select 字段都应使用 selectize.js。页面上可以有任意数量的 select 字段,我不知道所以它必须是抽象的。

初始化非常简单:

$('.selectize').selectize({
    create: true
});

您认为 select 任何给定 select 的默认 selected 值将在 selectize 初始化时使用...

<select class="selectize">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3" selected="selected">Option 3</option>
</select>

但由于某些原因 selectize 仅在 init 运行时将第一个选项设置为 selected。

我在文档中遗漏了什么吗?或者 selectize 真的不使用 html 中的 selected 属性吗?

这在使用 <option value="3" selected>

时也不起作用

澄清一下,这是一个数据过滤实用程序,点击定向过滤器、select 框等预计会在保持所有 select 离子的同时重新加载页面。因此,我必须依靠 PHP GET 参数来设置 selected 项目。该部分按预期工作,我已通过禁用 selectize.

验证了这一点

编辑 按照要求,这都是标准的实现。 Selectize 工作正常,没有控制台错误。它只初始化第一个值 selected.

更新

如下所述,您可以使用 selected,但由于未知原因我无法在我的设置中使用。一定是某个地方发生了冲突。无论如何,如果其他人遇到此问题,这就是我解决问题的方式。在我的初始化中,我循环遍历每个具有匹配 get 参数的 select 并通过与 get 值进行比较来设置它。示例在这里,它不是完整的代码,但足以让某人 运行...

var ss = $('#some-select').selectize();
var selectize = ss[0].selectize;
selectize.setValue(selectize.search(get_value).items[0].id);

是的,您可以将 selected 与 selectize 一起用于您的默认值 option。必须与您的问题中未包含的其他一些代码发生冲突,因为看起来 selectize 会像您期望的那样处理 selected 属性。请参阅下面的工作片段。

$('.selectize').selectize({
  create: true
});
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Selectize</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.default.min.css">
</head>

<body>

  <select class="selectize">
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3" selected>Option 3</option>
  </select>
  
  <select class="selectize">
    <option value="1">Option 1</option>
    <option value="2" selected>Option 2</option>
    <option value="3">Option 3</option>
  </select>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.js"></script>

</body>

</html>