Как я могу использовать тип ввода электронной почты HTML5 с серверной стороны .NET - PullRequest
23 голосов
/ 13 июля 2010

Насколько я понимаю, элемент <input type=email> в HTML5 будет отображаться как простое текстовое поле в браузерах, которые не поддерживают тег.В других браузерах он будет отображаться правильно, как на iPhone, он отображает раскладку клавиатуры электронной почты.

Я бы хотел использовать это в проекте, но мои поля ввода - <asp:TextBox> элементы управления.Как я могу использовать элемент HTML5, но при этом получить доступ к его стороне сервера данных, как и к остальным моим полям?

Ответы [ 6 ]

24 голосов
/ 20 июня 2011

Существует обновление для .NET Framework 4, которое позволяет указывать атрибут типа

http://support.microsoft.com/kb/2468871.

См. feature 3 путь вниз по странице

Функция 3

Новый синтаксис позволяет вам определить Элемент управления TextBox, который является HTML5 совместимы. Например, следующее Код определяет элемент управления TextBox, который HTML5 совместимый:

<asp:TextBox runat="server" type="some-HTML5-type" />
16 голосов
/ 29 мая 2012

вы можете попробовать добавить атрибуты вручную, например:

TextBox1.Attributes["type"] = "email"; 
TextBox1.Attributes["type"] = "url"; 
TextBox1.Attributes["type"] = "number"; 
4 голосов
/ 30 сентября 2015

Извините, я немного опоздал на вечеринку, хотя думаю, что другие могут извлечь выгоду из того, что я сделал.У меня есть страница HTML 5, хотя у нас все еще есть .NET 3.5.Мы хотели сохранить элемент .NET, хотя изменили тип на электронную почту.Я попробовал несколько методов (включая Милокс выше), но безрезультатно, но тот, который работал для меня, был следующим: я добавил свойство JavaScript к самому элементу, встроенному (когда я помещал его в тег скрипта, он не выбиралпо какой-то причине ...) Вот как будет выглядеть ваш тег, если вы используете мои изменения:

<asp:TextBox runat="server" type="email" onfocus="this.type='email'"/>

Eli

2 голосов
/ 10 февраля 2015

в вашем файле .aspx добавьте

<input type="text" required autofocus placeholder="Email Address"
class="txt-input txt-input-username" ID="myTextBox" runat="server"/>

в вашем коде позади .cs

myTextBox.Attributes["type"] = "email";

Это сработало для меня

2 голосов
/ 13 июля 2010

Независимо от того, доступен ли он в качестве серверного элемента управления, вы сможете получить доступ к коллекции HttpRequest.Form и получить значение. Независимо от того, что браузер делает с тегом, он должен отправить строку на сервер.

0 голосов
/ 21 декабря 2010

Вам необходимо создать свой собственный элемент управления и переопределить процедуры рендеринга. Не стесняйтесь использовать либо исходный код, либо библиотеки DLL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...