避免在输入 selectize.js <select> 之前必须按退格键

Avoid having to press backspace before typing in selectize.js <select>

我只有一个选择 <select> 元素,它使用 selectize.js.

进行了增强

<select> 元素有一个预 selected <option>(当前值)。

如果用户想要更改此值,他们必须

  1. 点击下拉控件,
  2. 退格键清除当前值,
  3. 开始输入他们的搜索并
  4. 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);
            }
        },