我正在一个项目中,每个选择字段都应该使用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);
答案 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>