如何在服务器端.NET中使用HTML5电子邮件输入类型

时间:2010-07-12 20:35:54

标签: asp.net html5 webforms

据我了解,HTML5中的<input type=email>元素将在不支持该标记的浏览器中呈现为一个简单的文本字段。在其他浏览器上,它将正确呈现,就像在iPhone上一样,它将调出电子邮件键盘布局。

我想在项目中使用它,但我的输入字段是<asp:TextBox>控件。我如何使用HTML5元素,但仍像其他字段一样访问其数据服务器端?

6 个答案:

答案 0 :(得分:24)

.NET framework 4有一个更新,允许您指定类型属性

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

请参阅页面上的feature 3

  

功能3

     

新语法允许您定义   TextBox控件是HTML5   兼容。例如,以下内容   代码定义了一个TextBox控件   HTML5兼容:

<asp:TextBox runat="server" type="some-HTML5-type" />

答案 1 :(得分:16)

您可以尝试手动添加属性,例如:

TextBox1.Attributes["type"] = "email"; 
TextBox1.Attributes["type"] = "url"; 
TextBox1.Attributes["type"] = "number"; 

答案 2 :(得分:4)

对不起,我有点迟到了,虽然我认为其他人可以从我所做的事情中受益。我有一个HTML 5的页面,虽然我们仍然有.NET 3.5。我们希望保留.NET元素,但要将类型更改为电子邮件。我尝试了几种方法(包括上面的Milox)无济于事,虽然对我有用的是以下内容:我在元素本身内联添加了一个JavaScript属性(当我把它放在脚本标签中时它不会&# 39;因某种原因捡起......) 如果您使用我的更改,以下是您的代码的外观:

  

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

答案 3 :(得分:2)

无论是否可以作为服务器控件访问它,您都应该能够访问HttpRequest.Form集合并检索该值。无论浏览器对标记执行什么操作,都必须向服务器提交字符串。

答案 4 :(得分:2)

在.aspx文件中添加

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

在您的代码背后.cs

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

这为我工作

答案 5 :(得分:0)

您需要创建自己的自定义控件并覆盖渲染例程。随意使用源代码或DLL