Я пытаюсь создать функцию поиска для приложения React. Я свел его реализацию к минимально воспроизводимому примеру. Я думаю, что проблема, с которой я столкнулся, может быть ошибкой браузера.
Рассмотрим следующий код React:
function IssueticForm() { const action = async (formData) => { // предположим, что это «использовать сервер». Я _должен_ извлечь данные из formData. // useState нельзя использовать для координации значения между этим действием и входными данными! предупреждение(formData.get('поиск')) } возвращаться ( Поиск ) } В Safari (WebKit) список данных отображается правильно:

и ввод частичного или полного соответствия члену списка данных, а затем нажатие Enter вызывает срабатывание действия формы.

Теперь в iOS Chrome (также WebKit, последняя версия на момент написания): введите частичное или полное совпадение, а затем нажмите кнопку поиск на клавиатуре iOS не запускает действие формы.


Что работает, так это выбор (не ввод!) записи списка данных из раскрывающегося списка, а затем нажатие поиска на клавиатуре iOS:

Обратите внимание, что это не работает при выборе предложения списка данных, расположенного над клавиатурой, что, как я полагаю, эквивалентно вводу записи списка данных вручную с точки зрения реализации.
Что также работает, так это ввести что-то, что вообще не соответствует ничему из списка данных, а затем нажать кнопку поиск на клавиатуре iOS.

Итак, это либо:
[*]Ошибка WebKit, специфичная для iOS. [*]Я неправильно настроил теги и , чтобы запретить введенные, а не выбранные совпадения.
Я спрашиваю:
[*]если проблема 1., существует ли обходной путь для ее решения, который сохраняет разумную семантику и возможности HTML ? [*]Если проблема 2., что мне делать, чтобы исправить ?
Спасибо!