我使用selectize.js设置文本框的样式,并且它工作正常。
$("select[name='somename']").selectize({
valueField: 'id',
labelField: 'name',
searchField: 'name',
options: selectableThings,
render: {
option: function(item, escape) {
return render(someTemplate, item);
},
item: function(item, escape) {
return render(someTemplate, item);
}
}
});
但是我的项目范围有限,并且不希望始终启用光标(闪烁|)。我已经通过the API docs和来源进行了搜索,但找不到任何明显的内容。
是否有内置功能可以禁用闪烁的光标?
编辑最初将此作为禁用输入'但看起来光标不能用于输入(禁用输入仍然显示光标)。
答案 0 :(得分:10)
Selectize并不是专门设计为仅作为选择装饰者。光标来自<input>
元素,允许用户减少选项。当用户键入时,隐藏输入将产生奇怪的行为。此外,当控件为空时,输入用于显示占位符文本。
从技术上讲,你可以用CSS隐藏光标(和输入):
/* option a: make transparent */
.selectize-input input {
color: transparent !important;
}
/* option b: position off-screen */
.selectize-input input {
position: absolute !important;
top: -9999px;
left: -9999px;
}
但同样,这会让人觉得时髦。我将研究编写一个禁用键盘处理的decorator_only
插件,但这不是当务之急。
答案 1 :(得分:1)
您还可以使用CSS文本缩进将光标移出屏幕:
input {
text-indent: -100px;
}
答案 2 :(得分:0)
如果要禁用selectize的键盘功能,只需将其输入readonly
。
$(select).selectize(options);
select.parentNode.querySelector('input').readOnly = true;
答案 3 :(得分:0)
如果要在将selectize用于简单的单项select下拉列表时删除闪烁的输入光标,则需要将已被selectize HTML替换的原始select元素的颜色设置为透明。
#myform select {
color: transparent;
}