Как вставить подсказку в текстовое поле asp:


104

Как мне поместить подсказку / заполнитель в asp: TextBox? Когда я говорю подсказку, я имею в виду текст, который исчезает, когда пользователь нажимает на него. Есть ли способ добиться того же с помощью html / css?


2
Какие браузеры вы поддерживаете? Браузеры HTML5 поддерживают placeholderатрибут для текстовых полей.
rikitikitik 05

Ответы:


201

placeholderатрибут

Вы ищете placeholderатрибут. Используйте его как любой другой атрибут внутри элемента управления ASP.net:

<asp:textbox id="txtWithHint" placeholder="hint" runat="server"/>

Не беспокойтесь о своей IDE (т.е. Visual Studio), возможно, не зная об атрибуте. Атрибуты, которые не зарегистрированы в ASP.net, передаются и отображаются как есть. Таким образом, приведенный выше код (в основном) отображает:

<input type="text" placeholder="hint"/>

Использование placeholderв ресурсах

Прекрасный способ применения подсказки к элементу управления - использование ресурсов . Таким образом, у вас могут быть локализованные подсказки. Допустим, у вас есть файл index.aspx , ваш файл App_LocalResources / index.aspx.resx содержит

<data name="WithHint.placeholder">
    <value>hint</value>
</data>

и ваш контроль выглядит как

<asp:textbox id="txtWithHint" meta:resourcekey="WithHint" runat="server"/>

полученный результат будет выглядеть так же, как и в главе выше.

Добавить атрибут в код позади

Как и любой другой атрибут можно добавить placeholderк AttributeCollection:

txtWithHint.Attributes.Add("placeholder", "hint");

2
По какой-то причине уловка с ресурсами "WithHint.placeholder"у меня не сработала.
Ммм

1
При использовании ресурсов вы можете сделать это для локального файла ресурсов: <asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: 52 %>" />или для глобальных ресурсов:<asp:TextBox ID="txtWithHint" runat="server" placeholder="<%$ Resources: ResourceFile, ResourceValue %>" />
EvilDr

при добавлении элемента управления в код все, что вам, по-видимому, понадобится: myTextBox.Attributes.Add («заполнитель», «подсказка»);
Элиот Гиллум,


19
 <asp:TextBox runat="server" ID="txtPassword" placeholder="Password">

Это сработает, и вы когда-нибудь почувствуете, что это не работает из-за того, что Intellisence не показывает заполнитель


7

Добавление атрибутов заполнителя из кода программной части:

txtFilterTerm.Attributes.Add("placeholder", "Filter" + Filter.Name);

Или

txtFilterTerm.Attributes["placeholder"] = "Filter" + Filter.Name;

Добавление атрибутов заполнителя со страницы aspx

<asp:TextBox type="text" runat="server" id="txtFilterTerm" placeholder="Filter" />

Или

<input type="text" id="txtFilterTerm" placeholder="Filter"/>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.