Вы можете использовать событие select
для amp-autocomplete
, чтобы получить значение event.value, которое будет возвращать значение атрибута data-value выбранного элемента.
https://amp.dev/documentation/components/amp-autocomplete/#events
Затем можно вызвать строковый метод split () для результата.
Вам потребуется изменить значение данных в шаблоне усов следующим образом:
<div class="city-item" data-value="{{id}},{{name}}">
Затем добавьте следующий код в автозаполнение, это назначит значения разделения двум временным свойствам состояния.
<amp-autocomplete
...
on="select: AMP.setState({
clinicName: event.value.split(',')[0],
clinicId: event.value.split(',')[1]
})"
>
Как только эти значения перейдут в состояние, вы сможете получить к ним доступ, используя связанные значения. Обратите внимание на атрибут [value], он обновит входные значения при изменении состояния. Стоит отметить, что изменение значения не вызовет прослушиватель событий change
на вашем входе, поскольку он срабатывает только при взаимодействии с пользователем.
<input
type="text"
placeholder="Numele clinicii"
name="clinic_name"
id="clinic_name"
[value]="clinicName"
on="change:AMP.setState({
clinic_name_validation: true,
form_message_validation:true
})"
/>
Последнее, что вам нужно сделать, это добавить скрытый ввод для Clini c ID, опять же это нужно будет привязать к временному состоянию свойства clinicId
.
<input
type="hidden"
name="clinic_id"
[value]="clinicId"
>