【问题标题】:Avoid having to press backspace before typing in selectize.js <select>避免在输入 selectize.js <select> 之前按退格键
【发布时间】:2020-10-23 04:14:17
【问题描述】:

我只有一个选择 &lt;select&gt; 元素,该元素使用 selectize.js 进行了增强。

&lt;select&gt; 元素有一个预选的&lt;option&gt;(当前值)。

如果用户想改变这个值,他们必须

  1. 点击下拉控件,
  2. 退格键清除当前值,
  3. 开始输入他们的搜索并
  4. 从自动完成建议列表中选择匹配结果。

我们可以避免第 2 步(必须按退格键才能打字)吗?

用户应该能够单击控件并立即开始输入。

您是否知道一个 selectize.js 插件、一个配置参数或一个基于 jQuery 的事件处理函数来实现该行为?

【问题讨论】:

  • 他们有一个onFocus 事件处理程序和一个用于项目的clear,我想你可以在onFocus 事件中调用它并且它会起作用

标签: javascript jquery selectize.js


【解决方案1】:

谢谢你,@George!

确实是这样的:

$( 'form.myform select' ).selectize( {
    create: false,
    diacritics: false,
    onFocus: function() {     // <-
        this.clear( false );  // <-
    }                         // <-
} );

【讨论】:

    【解决方案2】:

    试试这个(它存储以前的值,并在聚焦后恢复):

            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);
                }
            },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多