您可以使用selected =“ selected”在加载时自动选择selectize.js吗?

时间:2018-09-12 23:57:23

标签: html selectize.js

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

初始化非常简单:

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

您认为在选择init时会使用任何给定选择的默认选择值...

<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运行时将第一个选项设置为选定的状态。

我在文档中缺少什么吗?还是select确实不使用html中的selected属性?

使用<option value="3" selected>

时也不起作用

为澄清起见,这是一个数据过滤实用程序,在其中单击定向过滤器,选择框等可以重新加载页面,同时保留所有选择。因此,我必须依靠PHP GET参数来设置所选项目。该部分正在按预期方式工作,我已通过禁用selectize进行了验证。

编辑 根据要求,这是所有标准实现。 Selectize工作正常,没有控制台错误。它只是在初始化时仅选择了第一个值。

更新

如下所示,您可以使用选定的,但由于未知原因,我无法在设置中使用。一定是某个地方的冲突。无论如何,如果其他人有这个问题,这就是我的解决方法。在我的init上,我遍历具有匹配的get参数的每个选择,并通过与get值进行比较进行设置。示例在这里,它不是完整的代码,但足以使某人运行...

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

1 个答案:

答案 0 :(得分:1)

是的,您可以将selected与select作为默认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>