Как я могу использовать тип ввода электронной почты HTML5 с серверной .NET.
Как я понимаю, элемент <input type=email>
в HTML5 будет отображаться как простое текстовое поле в браузерах, которые не поддерживают тег. В других браузерах он будет отображаться правильно, например, на iPhone, он поднимет раскладку электронной почты.
Мне нравится использовать это в проекте, но мои поля ввода - это <asp:TextBox>
. Как я могу использовать элемент HTML5, но все же получить доступ к его серверу данных, как и остальные мои поля?
Ответы
Ответ 1
Существует обновление для .NET framework 4, которое позволяет вам указать атрибут type
http://support.microsoft.com/kb/2468871.
См. feature 3
путь вниз по странице
Функция 3
Новый синтаксис позволяет определить Элемент управления TextBox, который является HTML5 совместимы. Например, следующее код определяет элемент управления TextBox, который Совместимость с HTML5:
<asp:TextBox runat="server" type="some-HTML5-type" />
Ответ 2
вы можете попробовать добавить атрибуты вручную, например:
TextBox1.Attributes["type"] = "email";
TextBox1.Attributes["type"] = "url";
TextBox1.Attributes["type"] = "number";
Ответ 3
Жаль, что я немного опаздываю на вечеринку, хотя я думаю, что другие могут выиграть от того, что я сделал. У меня есть страница HTML 5, хотя у нас все еще есть .NET 3.5. Мы хотели сохранить элемент .NET, хотя изменение типа для электронной почты. Я пробовал несколько методов (включая Milox выше) безрезультатно, хотя тот, который работал у меня, был следующим: я добавил свойство JavaScript к самому элементу inline (когда я поместил его в тег script, он не будет " т по какой-то причине...)
Вот как выглядит ваш тег, если вы используете мои изменения:
<asp:TextBox runat="server" type="email" onfocus="this.type='email'"/>
Эли
Ответ 4
Доступен ли он как серверный элемент или нет, вы можете получить доступ к коллекции HttpRequest.Form
и получить значение. Независимо от того, что браузер делает с тегом, он должен отправить строку на сервер.
Ответ 5
в вашем .aspx файле добавить
<input type="text" required autofocus placeholder="Email Address"
class="txt-input txt-input-username" ID="myTextBox" runat="server"/>
в вашем коде .cs
myTextBox.Attributes["type"] = "email";
Это работало для меня
Ответ 6
Вам нужно создать собственный собственный элемент управления и переопределить подпрограммы Render. Не стесняйтесь использовать либо исходный код, либо библиотеки DLL