event.target.value - взять одно значение из двух

99
29 сентября 2021, 04:30

Возникла необходимость добавить выпадающий список с двумя значениями - условно контактом и его ID, одной строкой. Выбранное значение обрабатывается через event.target.value. Однако это значение берёт всю выбранную пользователем строку, а мне нужен только ID. Есть ли возможность его как-то отделить?

Впервые столкнулся с JS, так что извиняюсь заранее, если вопрос некорректный или элементарный.

HTML:

<select class="slds-select" name = "contactSelect" onchange={changeHandler}>
    <template for:each={allContacts.data} for:item="contact">
       <!-- мне нужен только {contact.Id}, пользователю - оба поля -->
       <option key={contact.Id} value={contactId}>{contact.Name}, {contact.Id}</option>    
    </template>
</select> 

Обработчик:

changeHandler(event) {
  const field = event.target.name;
    // здесь я получаю оба значения одной строкой, нужно одно
    if (field === 'contactSelect') {
        this.contactId = event.target.value;
        }
    // здесь я получаю оба значения одной строкой, нужно одно
    if (field === 'accountSelect') {
        this.accountId = event.target.value;
        }    
    }
Answer 1
var key = event.target.options[event.target.selectedIndex].getAttribute('key');
if (field === 'contactSelect') {
    this.contactId = key;
}
if (field === 'accountSelect') {
    this.accountId = key;
}    
READ ALSO
Проблема с памятью

Проблема с памятью

Практика «Частотность N-грамм»

112
Корректно оформить строку

Корректно оформить строку

Получаю из базы данных строку valuesОна представляет собой числа через запятую

130
Поднять объект в воздух [закрыт]

Поднять объект в воздух [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

109