禁用“按下退格键删除”(或完全删除ibeam)

5
我正在使用selectize.js制作自定义选择框。目前配置很容易,API支持几乎所有功能。我需要做的最后一件事是禁用按退格键删除项目的选项。对于这个问题,我找不到任何可调用的方法或配置属性。你有任何想法如何实现吗?
另外,对我有用的另一件事是禁用“ibeam”。这是一种允许您使用箭头键在所选项目之间导航的功能。如果禁用此功能,则用户仅能删除最后一个项目,这对我来说不是大问题。
完美的解决方案是两者都禁用,但禁用其中一个也可以解决问题。
谢谢
5个回答

9
有点晚了...
我想阻止回格键删除项目,但仍保留删除按钮的功能。
我编写了这个插件:

Selectize.define("stop_backspace_delete", function (options) {
  var self = this;

  this.deleteSelection = (function() {
    var original = self.deleteSelection;

    return function (e) {
      if (!e || e.keyCode !== 8) {
        return original.apply(this, arguments);
      }

      return false;
    };
  })();
});


4
如果有用的话,我会将其与 !e || (e.keyCode !== 8 && e.keyCode !== 46)一起使用,以防止删除键。 - abney317

2

我刚刚创建了一个Selectize插件,它可以防止用户取消选择选项。它完全阻止了通过退格键或删除按钮删除项目的功能。

https://github.com/akrikos/selectize-no-delete

您需要包含js文件并将插件添加到您的selectize选项中:

$('#selectElement').selectize({
  plugins: {
    'no-delete': {}
  }
});

2
我已经添加了三个新的配置选项,并将它们提交到github,同时也发起了一个PR。
1. disableDelete:禁用“删除键删除”。 2. disableCaret:禁止在选项之间移动光标。 3. hidePlaceholder:当至少选择了一项时隐藏占位符。
在PR被接受之前,这是我的repo链接:https://github.com/deiucanta/selectize.js

2
你为什么不使用插件来扩展功能,而是直接修改源代码呢? - Akrikos
1
@Akrikos 可能是因为很多人会发现那个功能很有用。 - mikemaccana

1
我不知道早期版本的情况。
但现在你只需要添加配置即可。
persist: true.

0

我想在不改变源代码的情况下完成这个任务,这样更安全,可以避免更新时出现问题。 - Andrei Canta
当然,但这是不可能的 :) 你可以随时fork并发送pull request来添加该选项,这应该很容易。 - methyl
完全有可能。您需要为selectize编写一个插件,以删除删除选择的功能。我刚刚写了一个解决同样问题的插件,并将在另一个答案中发布链接。 - Akrikos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接