据我了解,HTML5中的<input type=email>
元素将在不支持该标记的浏览器中呈现为一个简单的文本字段。在其他浏览器上,它将正确呈现,就像在iPhone上一样,它将调出电子邮件键盘布局。
我想在项目中使用它,但我的输入字段是<asp:TextBox>
控件。我如何使用HTML5元素,但仍像其他字段一样访问其数据服务器端?
答案 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