12

Теги для создания форм. Часть №2. <input>

Теги для создания форм. Часть №2. &lt;input&gt;

<input> - тег который мы вкладываем внутрь тега <form>, с помощью него мы будем создавать интерактивные поля для ввода информации пользователем.


Тег <input> можно использовать и вне тега <form>.



Также имеет много атрибутов позволяющих настроить его внешний вид, поведение и работу.


<input type="text">
<input type="number">
<input type="email">
<input type="tel">
<input type="checkbox">
<input type="radio">
<input type="button" value="Submit">
<input type="submit" value="Submit">
<input type="color">
<input type="date">
<input type="time">
<input type="file">
<input type="hidden">
<input type="password">
<input type="range">
<input type="url">


Это основные типы тега <input>, в зависимости от типа тега он может принимать какие-то атрибуты или не принимать их, об этом лучше читать в документации.

Рассмотрим несколько атрибутов на примере стандартного input для ввода текста.

<input type="text" value="Some text here">

value - позволяет нам определить или предопределить значение тега input.

<input type="text" placeholder="First name">

placeholder - определяет текст, который будет показа пользователь внутри input до того момента пока пользователь не начнет вводить свое значение. Доступен не всем типам input.

<input type="text" required>

required - определяет, будет ли обязательным этот input в рамках текущего тега <form>.

<input type="text" disabled>

disabled - определяет, будет ли у пользователя возможность редактировать содержимое input

<input type="text" pattern="">

pattern - в качестве значения принимает регулярное выражение которые будет проверять правильность введенных данных.

<input type="text" name="first_name">

name - задает имя для нашего input

<form id="form_id"></form>
<input type="text" form="form_id">
Атрибут form - позволяет связать input с тегом <form>, input лежит вне тега <form>.

Атрибутов <input> существует огромное количество, мы рассмотрели только самые распространенные.



Label - <label>


Это тег позволяющий указывать подпись для элемента, обычно используется вместе с тегом input. input и label можно связать с помощью id для input и for для label.


<form action="">
<h2>Contact form #1</h2>
<div>
<label for="first_name">First name:</label>
<input id="first_name" type="text" placeholder="First name">
</div>
</form>

Также мы можем положить внутрь <label> тег <input> в таком случае они свяжутся автоматически и нам не нужно указывать атрибуты for и id.


<form action="">
<h2>Contact form #2</h2>
<div>
<label>
<span>First name</span>
<input type="text" placeholder="First name">
</label>
</div>
</form>

Пример


<form action="">
<h2>Contact form #3</h2>
<div>
<label for="user_name">First name:</label>
<input id="user_name" type="text" placeholder="User name">
</div>
<div>
<label>
<span>User surname:</span>
<input type="text" placeholder="User surname">
</label>
</div>
<div>
<input type="submit" value="Submit">
<input type="reset" value="Reset from">
</div>
</form>

P.S. Больше уроков у меня на канале.


P.P.S Для тех кто хочет посмотреть код - ссылка на git репозиторий

Web-технологии

535 постов5.8K подписчиков

Правила сообщества

1. Не оскорблять других пользователей

2. Не пытаться продвигать свои услуги под видом тематических постов

3. Не заниматься рекламой

4. Никакой табличной верстки

5. Тег сообщества(не обязателен) pikaweb

0
Автор поста оценил этот комментарий

А где тут IT юмор?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Скорее всего случайно добавил, сорян

0
Автор поста оценил этот комментарий
disabled - определяет, будет ли у пользователя возможность редактировать содержимое input

disabled так же исключает input из serialize. Для запрета редактирования нужно использовать readonly.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Все правильно, для новичков , такой информации которая описана в материале считаю будет достаточно,  так как, предполагается, что человек который только начал учить HTML не понимает что такое serialize и оно на данном этапе ему не нужно.

показать ответы
Автор поста оценил этот комментарий
name - задает имя для нашего input

И нафига инпуту имя?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Для того чтобы браузер мог создать queryParams или для удобного доступа и парсинга данных из инпутов через JS, думаю это сложноватая инфа для начинающих, поэтому в материале об этом не идет речи.

0
DELETED
Автор поста оценил этот комментарий

А можете привести пример кода, как начинать поиск в гугле, не заходя на сам сайт гугла?

Если такую форму сделать, то это за всю жизнь можно сэкономить бесконечное количество интернета, а времени ещё больше!!!

раскрыть ветку (1)
Автор поста оценил этот комментарий
А кто тогда верстает сайты ?

Вы часто статичные сайты видите?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если сайт не статичный это не значит что его никто не верстал, а также не значит что элементы которые он использует никто не верстал.

Автор поста оценил этот комментарий
А кто тогда верстает сайты ?

Вы часто статичные сайты видите?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А это тут причем ?

1
Автор поста оценил этот комментарий

О каких новых тегах и возможностях я говорил?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сори не на тот комент ответил

0
Автор поста оценил этот комментарий
Для верстки макетов

Как неофит будет макет верстать, если вы о стилях ничего не сказали?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Когда расскажу о CSS тогда могут и начинать )

0
Автор поста оценил этот комментарий
Для верстки макетов

Как неофит будет макет верстать, если вы о стилях ничего не сказали?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А причем тут новые теги и возможности HTML о которых вы говорили ранее? Жду ответ на вопрос.

показать ответы
Автор поста оценил этот комментарий
Для верстки макетов, есть такая профессия "Верстальщик"

Вы же про современную вёрстку топите, а в ней чисто верстальщиков практически не осталось.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

И не до конца понимаю, откуда вы берете информацию о количестве верстальщиков в профессии "Верстальщик", есть какая-то статистика у вас или на какие источники вы ссылаетесь ?

0
DELETED
Автор поста оценил этот комментарий

Мне нужно складывать заранее заготовленные строки вместе, и с результирующей строкой открывать сайт.


Ладно, не надо больше отвечать, я устал повторять одно и тоже 10 разными способами.

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Хз может ваш редактор не понимает те button или input[submit] возможно стоит реально перейти на редактор поновее, и с того что я понял какие у вас требования к редактору, практически у всех редаторов есть похожий функционал, только интерфейс другой.

0
DELETED
Автор поста оценил этот комментарий

Мне нужно складывать заранее заготовленные строки вместе, и с результирующей строкой открывать сайт.


Ладно, не надо больше отвечать, я устал повторять одно и тоже 10 разными способами.

Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Так уже лучше, тогда вам нужно писать скрипт для этих целей.

P.S. От себя скажу и без обид, старайтесь понятнее выражать свои мысли, тогда и понять вас будет проще, без обид )

Автор поста оценил этот комментарий
Для верстки макетов, есть такая профессия "Верстальщик"

Вы же про современную вёрстку топите, а в ней чисто верстальщиков практически не осталось.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А кто тогда верстает сайты ?

Или если ты верстальщик то теперь тебе надо верстать без использования новых возможностей ?

показать ответы
0
Автор поста оценил этот комментарий

И для чего по вашему новички будут форму использовать?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Для верстки макетов, есть такая профессия "Верстальщик", и перед тем как стать полноценным Frontend разработчиком, любой человек должен пройти через верстку макетов и тд. Так вот в этих самых макетах который они будут верстать, встречаются формы и желательно понимать как с они работают и зачем нужны.

Конечно есть индивидуумы которые без каких либо знаний идут учить сразу какой-то фреймворк, о них речи не идет.

показать ответы
0
DELETED
Автор поста оценил этот комментарий

Я не совсем понимаю вас.


Я привык к самому простому, и понятному HTML редактору из Win98. В нём меня всё устраивает. Особенно полезная функция - что он все новомодные скрипты, стили и прочий мусор показывает в виде жёлтых квадратиков - их очень удобно удалять из-за этого! С целью сохранять тексты с картинками в своей коллекции с минимально-занимаемым объёмом (картинки я тоже пережимаю).


Пробовал пару раз новые редакторы. Но они оказалось, что НЕ для визуального редактирования ТЕКСТА, а именно что для всяких скриптов и стилей заточены!!! Т.е. с задачей выкидывать мусор из HTML - не справляются.


Теперь вернёмся к вашему примеру (ещё раз спасибо за него). В том виде, как вы его написал - он работает (как я понимаю, работает потому что и поле ввода текста и НЕВИДИМАЯ при редактировании кнопка относятся к одному и тому же объекту. Я не против такого, не знал, что такое вообще бывает.


Но для написания более-менее серьёзной искалки такой вариант не годится!

Хотелось бы иметь несколько РАЗНЫХ полей ввода и/или РАЗНЫХ кнопок, чтобы текст можно было написать один раз типа "USB pinout", а потом чтоб можно было нажать кнопку с разными опциями "просто искать", "искать картинки", "искать только на site:com".

А в вашем примере такое НЕВОЗМОЖНО. Потому что нету операции

Кнопка1.Текст:=Input1.Teкст; или ещё лучше

Кнопка1.Текст:=Input1.Teкст + Input2.Teкст; только потом должна быть операция "Кнопка нажата".

Вот это вот выделенное жирным мне нужно!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
как я понимаю, работает потому что и поле ввода текста и НЕВИДИМАЯ при редактировании кнопка относятся к одному и тому же объекту.

Какая именно невидимая кнопка?

Хотелось бы иметь несколько РАЗНЫХ полей ввода и/или РАЗНЫХ кнопок, чтобы текст можно было написать один раз типа "USB pinout", а потом чтоб можно было нажать кнопку с разными опциями "просто искать", "искать картинки", "искать только на site:com".
В таком случае вам для того чтобы были разные поля для ввода с разными кнопками, необходимо создавать еще формы с полями и кнопками, в дополнение к этой. Для того чтобы искать по определенному сайту, нужно изменить url поиска, это атрибут action в теге form.


Я привык к самому простому, и понятному HTML редактору из Win98. В нём меня всё устраивает. Особенно полезная функция - что он все новомодные скрипты, стили и прочий мусор показывает в виде жёлтых квадратиков - их очень удобно удалять из-за этого! С целью сохранять тексты с картинками в своей коллекции с минимально-занимаемым объёмом (картинки я тоже пережимаю).
Я думаю это можно упростить, просто скачивайте себе сайт, и отрубайте от него все CSS и JS файлы, картинки на сайтах обычно и так минифицированы.

показать ответы
0
DELETED
Автор поста оценил этот комментарий

Ну вот я стёр, всё, что относится к вашему примеру, и оставил только настоящий "input" и настящую "кнопку".


В Borland Delphi я бы мог написать примерно такой код (понятно, что там интернетных функций нету, а я взял ваше название):


onButtonClick:= Аction ('https://www.google.com/search' + Input.text);


А тут такое можно впихнуть просто в кнопку? (без всяких onButtonClick)

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если я вас правильно понял, вам нужно обернуть инпуты в тег form и убрать скрипт onButtonClick браузер сам будет слать запрос и обрабатывать форму

показать ответы
0
DELETED
Автор поста оценил этот комментарий

Огромное спасибо! Работает!!! Я пол жизни об этом мечтал!!!!


Только можно как-то поиск на обычную, настоящую кнопку повесить, которую я могу видеть в редакторе? Чтоб убрать весь мусор с экрана в режиме редактирования (штрих-пунктируную линию, и жёлтые квадратики  - коды которые редактор не показывает.


На скриншотах ваш пример кода моей странице в редакторе (он не умеет нормально показывать кодировку UTF-8), а ниже настоящая кнопка - вот можно как-то связать "input" и настоящую "кнопку"?

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Если честно, я не понял вопрос (

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества