Javascript 如何使selectize.js选择框需要一个值?

Javascript 如何使selectize.js选择框需要一个值?,javascript,jquery,selectize.js,Javascript,Jquery,Selectize.js,我原来的选择框设置了required属性 <select name="some-name" value="initialValue" required> <option value="initialValue">initial value</option> <option value="otherValue">other value</option> </select> 但是用户仍然可以使用退格键删除所

我原来的选择框设置了
required
属性

<select name="some-name" value="initialValue" required>
     <option value="initialValue">initial value</option>
     <option value="otherValue">other value</option>
</select>
但是用户仍然可以使用退格键删除所选选项,使选择框的值为
'

由于real select框上的
required
似乎不会影响Selectize,我已经阅读了,但找不到任何方法阻止用户删除该选项

如何防止用户将该值设置为有效选项之外的任何值?

使用可以正常工作。由于我使用npm:

var Selectize = require('selectize');

// https://github.com/akrikos/selectize-no-delete/blob/master/src/selectize-no-delete.js
Selectize.define('no-delete', function(options) {
  this.deleteSelection = function() {};
});
然后,在创建selectize实例时:

$("select[name='country-code']").selectize({
    plugins: {
        'no-delete': {}
    },
    ....
})
您可以在删除选项时检查所选选项是否小于1,如果该选项为“添加回项目”。getValue()返回当前选定值的数组

对用户来说,它看起来像是不可删除或不可移除的

var userSelectize = $(...).selectize({});
userSelectize[0].selectize.on("item_remove", function(value, item) {
            if (userSelectize[0].selectize.getValue().length < 1) {
                this.addItem(value);
            }
    });
var userSelectize=$(…).selectize({});
userSelectize[0]。selectize.on(“项\移除”,函数(值,项){
如果(userSelectize[0]。selectize.getValue().length<1){
此。addItem(值);
}
});

这似乎是该插件的一个功能:
Selectize是文本框和文本框的混合体。我最近使用了jQuerySelectric,如果您只是在寻找定制样式(我还没有使用required属性进行测试),它可能是一个更好的选择。您使用此功能只是为了自定义下拉列表,还是需要文本框功能?@brouxhaha我在其他地方(对于其他元素)使用selectize的文本框功能,因此退出selectize(并有两个选择替换)是不现实的。嘎!好。。。您是否尝试过使用
onDelete(values)
回调函数?也许你可以阻止它做任何事情,或者只是将该值设置为当前选择的值?你可以看到,谢谢@alemv,这种方法是有效的-我已经在答案中加入了演示代码。
var userSelectize = $(...).selectize({});
userSelectize[0].selectize.on("item_remove", function(value, item) {
            if (userSelectize[0].selectize.getValue().length < 1) {
                this.addItem(value);
            }
    });