У меня есть выпадающий список и параметры, как описано ниже.
Если я попытаюсь нажать / выбрать «POICaption-XX423366 [НЕ РАЗРЕШИТЬ ВЫБРАТЬ ДЛЯ ЭТОГО]», я могу ограничить это значение для выбора.
<select multiple="multiple" size=20 id="caption_collection">
<optgroup label="MAKE A CHOICE">
<option>SHOW ALL ENABLED CAPTIONS</option>
<option>SHOW ALL DISABLED CAPTIONS</option>
<option>SHOW ALL LISTED CAPTIONS</option>
</optgroup>
<optgroup label="ELSE SELECT ONE OR MULTIPLE">
<option>ALWCaption-A100104 [ALLOW SELECT HERE]</option>
<option>ZSDCaption-Z100104 [ALLOW SELECT HERE]</option>
<option>XCDCaption-S100104 [ALLOW SELECT HERE]</option>
<option>DCVCaption-Q100104 [ALLOW SELECT HERE]</option>
<option>ERTCaption-D100104 [ALLOW SELECT HERE]</option>
<option>BNMCaption-XX223366 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>XWECaption-XX243356 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>QWECaption-XX323356 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>DFGCaption-XX228866 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>TYUCaption-XX220066 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>POICaption-XX423366 [DO NOT ALLOW SELECT FOR THIS]</option>
<option>GHJCaption-D100104 [ALLOW SELECT HERE]</option>
<option>LKICaption-D100104 [ALLOW SELECT HERE]</option>
<option>UYTCaption-XX423366 [DO NOT ALLOW SELECT FOR THIS]</option>
</optgroup>
</select>
<br><br>
<div>
<textarea id="selected" rows="4" cols="56" readonly></textarea>
</div>
const needle = '[DO NOT ALLOW SELECT FOR THIS]';
// using jQuery:
$('select option').prop('disabled', function() {
return this.text.includes(needle);
});
$("#caption_collection").change(function() {
$('#selected').html(' ');
$("#caption_collection option:selected").each(function() {
var $this = $(this);
if ($this.length) {
var selText = $this.text();
console.log(selText);
$('#selected').append(selText + ', ');
//$('#selected').text('Only Captions allowed are:').append(selText + ', ');
}
});
});
UPDATE:
Обновлен с рабочим кодом, но нужно больше рекомендаций.
ПРОБЛЕМА:
Получил 3 варианта в optgroup "" СДЕЛАЙТЕ ВЫБОР ", как показано ниже
SHOW ALL ENABLED CAPTIONS
SHOW ALL DISABLED CAPTIONS
SHOW ALL LISTED CAPTIONS
То, что я хочу, это щелкнуть мышью на каждом, чтобы получить значение, показанное ниже
SHOW ALL ENABLED CAPTIONS
A100104 ,Z100104 ,S100104 ,Q100104 ,D100104 ,D100104 ,D100104
SHOW ALL DISABLED CAPTIONS
XX223366 ,XX243356 ,XX323356 ,XX228866 ,XX220066 ,XX423366 ,XX423366
SHOW ALL LISTED CAPTIONS
XX223366 ,XX243356 ,XX323356 ,XX228866 ,XX220066 ,XX423366 ,XX423366, A100104 ,Z100104 ,S100104 ,Q100104 ,D100104 ,D100104 ,D100104
И под меткой optgroup = "В противном случае выберите один или несколько"
необходимо отобразить одно или несколько значений как:
A100104 ,Z100104 ,S100104
A100104
Хотя я могу извлечь
var stre = "LKICaption-A100104 [LKI hfjdlfdlfjl]"
var str2 = stre.split('-');
var strval = str2[str2.length - 1];
alert(strval) // A100104 [LKI hfjdlfdlfjl] but I need only A100104
alert(strval.split(' ')[0]) // Worked this way o/p is A100104