Как создать HTML-форму с предварительно заполненными «инструкциями», которые проясняются, когда пользователь нажимает на поле?

#html

#HTML

Вопрос:

У меня есть HTML-форма следующим образом:

    <form method="POST" action="http://">
 Username: <input type="text" name="username" size="15" />
 Password: <input type="password" name="password" size="15" />
<input type="submit" value="Login" />
 </div>
 </form>
  

Я хотел бы, чтобы функциональность была такой, чтобы в текстовых полях содержались инструкции, которые очищаются, когда пользователь нажимает на поле, чтобы я мог сэкономить место и удалить слова «Имя пользователя» и «Пароль» из-за пределов форм.

Как этого можно достичь?

Комментарии:

1. Да, это просто для стандартной формы входа. Пользователь сможет видеть свои учетные данные: Melanie и ****** после ввода, но не инструкции: [user] [pass]

Ответ №1:

Функция, которую вы ищете, называется «заполнитель». (если ничего другого, просто знание этого термина поможет вам найти дополнительную информацию в Google)

В современных браузерах, поддерживающих HTML5, это встроенная функция, которую вы можете очень легко использовать следующим образом:

 <input type='text' name='username' size='15' placeholder='User name' />
  

Однако этот метод работает только с современными браузерами, которые поддерживают эту функцию.

Для этого в старых браузерах потребуется некоторый Javascript-код. К счастью, существует ряд сценариев, которые вы можете использовать, включая некоторые, написанные как плагины jQuery. Я бы порекомендовал те, которые привязаны к placeholder атрибуту в поле ввода, чтобы вы могли поддерживать его изначально в браузерах, в которых есть эта функция, и вернуться к Javascript для тех, в которых этого нет.

Попробуйте это: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

Ответ №2:

Если вы используете HTML5, вы можете сделать это с помощью placeholder атрибута:

 <form method="POST" action="http://">
    <label for="username">Username:</label> 
    <input placeholder="Username" id="username" name="username" size="15">
    <label for="password">Password:</label> 
    <input placeholder="Password" type="password" id="password" name="password" size="15">
    <input type="submit" value="Login">
</form>
  

Я бы все равно включил текст имени пользователя и пароля, завернутый в <label> теги для доступности, но вы всегда можете скрыть их с помощью CSS, подобного этому:

 form {
    position:relative;
}
label {
    position:absolute;
    top:-9999px;
}
  

Ответ №3:

Как отмечали другие, в HTML5 есть атрибут, который позволяет это делать, называется placeholder — читайте об этом здесь:

Для этого не требуется Javascript, но он не поддерживается старыми браузерами (см. http://caniuse.com/#feat=input-placeholder).

Следует отметить, что заполнитель не предназначен для замены <label> файлов, которые вы не используете, и, вероятно, должен быть.

 <label for="username">Username:<label>
<input type="text" id="username" name="username" placeholder="Enter your username" size="15" />
  

Метки важны по целому ряду причин, и не использовать их — плохая практика.

Комментарии:

1. Да, есть несколько вещей, которые я еще не настроил в форме, но которые я добавлю, просто для визуального ознакомления при разработке сайта. Однако спасибо вам за ваши советы. !

2. Что ж, в таком случае метки — отличный семантический крючок для вашего CSS, поэтому вам определенно следует использовать их для своего дизайна 🙂

Ответ №4:

Обычно они называются водяными знаками и требуют javascript.

Посмотрите на плагин jQuery-watermark.

Ответ №5:

Я написал пользовательскую форму, потому что хотел иметь определенное поведение.

https://90dayjobmatch.com/js/jquery.wf.formvaluelabel.js

Использование:

 $('#signup_job_title').formvaluelabel({text:'eg. Graphic Artist'});
  

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

HTH

Комментарии:

1. Какое конкретное поведение было добавлено к нему?

2. Я хотел, чтобы он восстанавливал водяной знак, если значение изменилось обратно на исходное значение. Кроме того, я не хотел, чтобы водяной знак показывал, что я предварительно заполнил значения (т. Е. ввод и редактирование формы). Кроме того, я хотел иметь возможность проверить, активно ли применялся водяной знак к этому элементу.