Как перехватить значение переданное input из datalist?
С помощью ajax заполняю datalist значениями номера детали. Хотелось бы, чтобы еще подтягивало во второй input значение наименование детали. Отсюда вопрос: как передать значение выбранного номера детали в другую процедуру js или как одновременно по клику заполнять сразу два поля? Название я получаю в массиве вместе с номером детали.
Здесь же еще возникает проблема сохранения формы, потому что клиент может нагородить до ста строк в форме заказа и все это из-за одного сбоя сети может погибнуть. Т.е. введенные значения неплохо бы еще в сессию закидывать с помощью js.
Johnny Lowhunter, Пока что с куками - дело вторичное. Сперва надо понять: как перехватывать значение из datalist и присваивать значение второму полю. Сдается мне, что куки через js - это тот еще онанизм. Проще сессии в PHP запустить.
maiskiykot, онанизм тут как раз сессии)) Если кукисы это все же пошловато для вас, то по второй ссылке можно найти более современные способы хранения
По поводу datalist - такой тип данных мне не знаком
По поводу заполнения сразу двух полей: берете два инпута, на первый вешаете обработчик(addEventListener), в котором и будете менять данные второго инпута. Видимо (сужу по постановке вопроса и предъявленной выше аргументации плохого камента) - Вам нужен ответ в виде "сходи пройди курс кмб по жабоскрипту"(не в обиду сказано))
Johnny Lowhunter, Полный курс бессмысленен ибо не пользуюсь широко js в проектах. С другой стороны иногда хочется чего-то эдакого. Вешать addevent - на этом поле уже onkeyup висит. Еще onchange навешать? Я попробовал - так он требует еще клик где-нибудь после того как значение встает в input. И опять же неясно - как заполнить второе поле. Еще один ajax вешать? Или как-то из кук выдрать значение, которое туда запихать первым ajax? Получается, что в input прилетает номер детали к примеру 2984948 а из кук как забрать его наименование? C этим UI/UX вечно мучаешься на ровном месте.
maiskiykot, ну так впихните в onkeyup, а в остальном не понятно что сказать потому, что кода не видно и не понятно что подтягивается с сервера и в каком виде и в каком месте кода - сами подумайте какой ответ Вам могут дать на абстрактный вопрос..абстрактный)
Я вот вижу так:
Пользователь вводит в инпут данные, на сервер отправляется запрос и если срабатывает условная логика, то в ответ приходит массив данных со структурированным описанием. Как вариант в onkeyup запихните логику автозаполнения полей (одного, двух, трёх..) которые подтягиваются с сервера, а пользователь их уже может поправить если надо. Вот если бы расписали хоть так например:
Структура формы:
inputCode
inputName
inputSomethingElse
...
Обработчик
inputCode.onkeyup = function(){
ajax(code).then(datalist => inputName.setValue(datalist.partName))
//Это что хочу
//А вот что сейчас:
...
Я не силен в js, если поняли. Мой полет мысли обрывается в месте appendChild ajax -> datalist. Дальше, к сожалению, логическую цепочку построить не могу. Массив json приходит двухмерный типа [number...][name...]. Номера вставляются корректно. Сам вопрос в дальнейших действиях - что делать дальше, чтобы вставить name в input name? Либо я должен как-то перехватывать значение в input number или есть возможность внести уже при выборе из datalist значение в input name. Я просто до конца не понимаю логику действия js из-за этого и буксую. Серверные языки мне лучше удаются.