Я создаю свое первое веб-приложение на основе Sinatra, в основном использую материализацию-степпер для моей формы и материализацию для остальной части интерфейса. У меня есть форма, принимающая пользователя 2 пользовательских ввода, каждый пользовательский ввод имеет автозаполнение. Данные для автозаполнения поступают прямо из моей базы данных. Я пытаюсь найти способ добавить функцию, в которой вводимые пользователем данные могут использоваться только, а форма может быть отправлена только в том случае, если ввод поступает из данных автозаполнения предложения, и каким-то образом добавить идентификатор, чтобы я мог ссылаться на каждый результат.
Идентификатор необходим, потому что форма берет начало и пункт назначения аэропортов из моей базы данных и делает запрос на получение рейсов с этой информацией, если передаваемые данные недействительны, я не получу результатов. Позже мне нужно добавить функцию, в которой пользователь может добавить этот рейс, если он хочет иметь профиль, y для этого мне нужно сделать каждый рейс «отслеживаемым»
Это код, отвечающий за автозаполнение данных и инициализацию
// document.addEventListener('DOMContentLoaded', function() {
// initialize stepper
const flightStepper = document.querySelector('.stepper');
const stepper = new MStepper(flightStepper);
// initialize the autocomplete
const elems = document.querySelectorAll('.autocomplete');
M.Autocomplete.init(elems, {
limit: 8,
data: {
// pulling all the airports from the database
<%@airport.all.map do |airport|%>
<% if airport.iata_code.split('-')[0].size > 3%>
// "beautifying the autocomplete text for the user and verifying its length"
"<%= airport.name%> ,<%=airport.iata_code.split('-')[0].chop %>": null,
<% else%>
"<%= airport.name%> ,<%=airport.iata_code.split('-')[0] %>": null,
<%end%>
<%end%>
}});
</script>
Моя форма - основная c форма, принимает аэропорт отправления, пункт назначения и т. Д. c.
Спасибо всем, кто пытается мне помочь!