您可以使用 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>
我正在开展一个项目,其中每个 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>