避免在输入 selectize.js <select> 之前必须按退格键
Avoid having to press backspace before typing in selectize.js <select>
我只有一个选择 <select>
元素,它使用 selectize.js
.
进行了增强
<select>
元素有一个预 selected <option>
(当前值)。
如果用户想要更改此值,他们必须
- 点击下拉控件,
- 按退格键清除当前值,
- 开始输入他们的搜索并
- select 来自自动完成建议列表的匹配结果。
我们可以避免第 2 步(在能够输入之前必须按退格键)吗?
用户应该能够单击该控件并立即开始输入。
您是否知道 selectize.js 插件、配置参数或基于 jQuery 的事件处理函数来实现该行为?
谢谢@George!
确实是这样的:
$( 'form.myform select' ).selectize( {
create: false,
diacritics: false,
onFocus: function() { // <-
this.clear( false ); // <-
} // <-
} );
试试这个(它存储以前的值,并在 focusout 后恢复):
let value;
//...
//When opening dropdown get the value
onDropdownOpen: function() {
value = this.getValue();
this.clear(false)
},
//When closing empty dropdown, set the grabbed value
onBlur: function() {
if(this.getValue() == '') {
this.setValue(value);
}
},
我只有一个选择 <select>
元素,它使用 selectize.js
.
<select>
元素有一个预 selected <option>
(当前值)。
如果用户想要更改此值,他们必须
- 点击下拉控件,
- 按退格键清除当前值,
- 开始输入他们的搜索并
- select 来自自动完成建议列表的匹配结果。
我们可以避免第 2 步(在能够输入之前必须按退格键)吗?
用户应该能够单击该控件并立即开始输入。
您是否知道 selectize.js 插件、配置参数或基于 jQuery 的事件处理函数来实现该行为?
谢谢@George!
确实是这样的:
$( 'form.myform select' ).selectize( {
create: false,
diacritics: false,
onFocus: function() { // <-
this.clear( false ); // <-
} // <-
} );
试试这个(它存储以前的值,并在 focusout 后恢复):
let value;
//...
//When opening dropdown get the value
onDropdownOpen: function() {
value = this.getValue();
this.clear(false)
},
//When closing empty dropdown, set the grabbed value
onBlur: function() {
if(this.getValue() == '') {
this.setValue(value);
}
},