我有一个使用jquery Selectize.js插件的下拉选择框。我想要它做的是在显示到字段时不显示下拉选项,但仍然通过任何其他方式打开下拉列表。
我已设置' openOnFocus:false'防止它在第一次获得焦点时打开下拉,这是有效的。但是,如果使用鼠标,我不希望用户必须双击。所以我尝试设置onFocus回调以检查Tab键是否被按下,如果没有,则再次给它焦点。 onFocus似乎没有激发过。我添加了Console.log以验证它不是。有什么建议?有没有更好的方法来解决这个问题?谢谢!
这是我的代码。
$("#branch_entry").selectize({
hideSelected: true,
sortField: "value",
openOnFocus: false,
onFocus: function() {
console.log("focus");
var code = e.keyCode || e.which;
if (code != 9) { // not tab
$("#branch_entry").focus();
}
}
});
答案 0 :(得分:2)
我认为你必须在selectize input元素中处理click
事件并调用selectize.open()
方法。
HTML:
<div id="branch_entry-div">
<select id="branch_entry">
<option value="0">Item 0</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
</select>
</div>
JavaScript的:
$("#branch_entry").selectize({
hideSelected: true,
sortField: "value",
openOnFocus: false
});
$("#branch_entry-div .selectize-input").on('click', function() {
$("#branch_entry")[0].selectize.open();
});