Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как html-страницу с автозаполнением формы настроить на автоизменение длины каждой строки ввода (input)...?

garrip91 Ученик (136), закрыт 5 лет назад
продолжение пока ещё темы вопроса: ...в зависимости от посимвольной длины каждого вводимого "value"?

К примеру, имеется такой синтаксис (обычная html-страница с событием автозаполнения формы):

Имя



Маил



Телефон



Пароль



Повтолный пароль



Заполнить



Изначально при автозаполнении у меня часть вводимой информации ("value") не была видна, так как стандартная длина поля ввода "input" маленькая, а содержимое некоторых полей явно превышает эту длину (по количеству символов, как вы уже поняли).

До сего момента я, имея все свои данные (так называемые "value"), которыми автозаполняю форму, был вынужден посимвольно посчитать их и к каждому "input"-у добавить атрибут "size" с соответствующим числовым значением.

У меня возникла мысль о возможности автоизменения поля ввода "input" при автозаполнении формы.
Недавно мне для достижения этой цели была предложена идея с применением такого свойства объекта JS как "event".

Ну и теперь главный вопрос:
А как бы вы поступили, уважаемые люди? Может, у вас есть варианты и идеи получше?...
Дополнен 5 лет назад
При опубликовании данного вопроса синтаксис преобразовался в какое-то нечто, в связи с чем я буду вынужден приложить к настоящему данный скрин ("пропавшего" синтаксиса)!
Он должен быть выделен синим цветом...
Лучший ответ
̑̈☣̑̋̑̎̑̈ ☠̤̥̤̭̤ ☢J̯̤ͣͮͣ̐̈ Высший разум (160375) 5 лет назад
Да толком вопрос не понял слишком много воды в нём непонятно что конкретно надо
Ну вот что получилось

<input type="text" style="width: 5ex;max-width:95vw;min-width: 5ex;">
<script>
oninput=onchange=()=>{
event.target.tagName=='INPUT'&&event.target.type=='text'&&(event.target.style.width=(event.target.value.length+1)+'ex');
}
</script>


garrip91Ученик (136) 5 лет назад
Да, примерно это и надо, только ещё и хотелось бы данное событие применить к событию автозаполнения....
̑̈☣̑̋̑̎̑̈ ☠̤̥̤̭̤ ☢J̯̤ͣͮͣ̐̈ Высший разум (160375) После загрузки в поля данных просто вызови oninput(); или onchange(); ⚤
Остальные ответы
Ярослав Искусственный Интеллект (107837) 5 лет назад
Вместо идей, поясню 2 причины, по которым (с моей точки зрения) ваш вопрос не получает хороших ответов: "мутное" содержание вопроса + сомнительная польза ответов, в данной ситуации.
Подробнее о каждой:
́
1) Осмысленность вопроса
Автозаполнение формы, в общепринятом смысле - подстановка в форму значений, которые ранее вводились юзером, и были сохранены в менеджере паролей. Автозаполнение выполняет браузер, и работать с автозаполненным полем ввода, из JS невозможно: пока пользователь не изменит значение, свойство value будет возвращать пустую строку (ограничение в целях безопасности). Соответственно, фраза "автозаполняю форму" не имеет смысла. И соотв., вся формулировка вопроса (и без того спутанная) так же теряет какой-либо смысл.
Да, если посмотреть кошмарный код на микроскриншоте, то задача станет понятнее... как и то, что она противоречит логике (заполнять prompt чтобы заполнять input'ы). Но ответчик Вам этого не объяснит, т. к. вероятно не станет портить свои зрение и мозг - ему хватит одного прочтения текста вопроса.
́
2) Рациональность ответов
По изобретению "свойства JS-объекта" event, по уже упомянутой нелогичности, и по говнокоду (на скриншоте) типа того что пишет местный наркоман (автор первого ответа тут) - можно сделать вывод о вашем уровне знания и браузерного JavaScript, и программирования в целом. Имеет ли смысл отвечать человеку на непонятном ему языке? Очевидно, нет... разве что ради баллов.
́
Что можете сделать:
• Постараться спрашивать в более четкой, емкой, и понятной форме. Есть множество руководств и инструкций на эту тему - гуглятся они по строке 'как задавать вопросы'.
• Изучить основы JS. Ресурсы - раз, и два.
Похожие вопросы