Я добавляю текстовый ввод для каждого элемента опции в поле Select2 с включенным «несколько», и мне нужно предотвратить все события Select2 при нажатии на вход, как в раскрывающемся состоянии, так и в уже выбранномРезультат таблетки при любых условиях.
Я получил старт от другого подобного вопроса и попытался расширить его до моих потребностей, попробовав все события Select2 но я не могу заблокировать событие в каждом месте, где отображается поле ввода.
$('#my-select').select2({
width: '300px',
multiple: true,
templateResult: function (item) {
var $result = $('<span>'+item.text+'</span><input class="input" placeholder="Input Text Here" onclick="test()">');
return $result;
},
templateSelection: function (item) {
var $result = $('<span>'+item.text+'</span><input class="input" placeholder="Input Text Here" onclick="test()">');
return $result;
}
}).on("select2:selecting", function (e) {
console.log("selecting",e.params.args.originalEvent);
if (e.params.args.originalEvent.target.className === 'input') {
e.preventDefault();
}
}
);
http://jsfiddle.net/6spf32Lx/
Этот JSFiddle предотвратит событие Select2 в раскрывающемся списке, но не помешает этому для уже выбранной опции (где щелчок по входу очистит эту опцию). Также это не помешает событию во входных данных результата таблетки.