С веб-компонентами один из элементов, которые люди хотят создавать и переопределять, - это <input>
. Элементы ввода плохи, потому что их много, в зависимости от их типа и обычно трудно настраивать, поэтому нормально, что люди всегда хотят изменить внешний вид и поведение.
Два года назад более или менее, когда я впервые услышал о веб-компонентах, я был очень взволнован, и первые элементы, которые мне придумали, я хотел создать, были пользовательскими элементами ввода. Теперь, когда спецификация закончена, похоже, что необходимость в элементах ввода не решена. Shadow DOM должен был позволить мне изменить внутреннюю структуру и внешний вид, но элементы ввода занесены в черный список и не могут иметь теневой корень, потому что у них уже есть скрытый. Если я хочу добавить дополнительную логику и поведение, пользовательские, встроенные элементы с атрибутом is
должны делать трюк; Я не могу сделать тёмную магию DOM, но, по крайней мере, у меня есть это, не так ли? хорошо Safari не собирается его реализовывать, полимер не будет использовать их по той причине, которая пахнет стандартом, который скоро будет устаревшим.
Итак, у меня остались обычные пользовательские элементы; они могут использовать теневую DOM и иметь любую логику, которую я хочу, но я хочу, чтобы они были входами! они должны работать внутри <form>
, но если я прав, элементы формы им не нравятся. Должен ли я написать собственный собственный элемент формы, который реплицирует все то, что делает родной? Должен ли я попрощаться с FormData
, API проверки и т.д.? Я теряю возможность иметь форму с входами, которые работают без javascript?