由于找不到select2自带的方法去实现这个功能,所以在源码里找了一下,发现稍作修改可以实现。
在select2源码上 2128 行的searchRemoveChoice方法里,他们把删除的那一项的值放到了input标签里
所以把
this.$search.val(item.text);
修改为:
// this.$search.val(item.text);
setTimeout(function () {
$('.select2 .select2-selection__rendered li:last-child input').focus();
})
然后在设置select2时,把allowClear值设为false
$('#select').select2({
allowClear: false
})
同时为了更好地用户体验,在选择框值改变时加上获取焦点事件
$('#select').on('change', function () {
setTimeout(function () {
$('.select2 .select2-selection__rendered li:last-child input').focus();
})
})