Asp.Net Mvc - Html.TextBox - 设置自动对焦属性

时间:2010-06-08 14:30:30

标签: asp.net-mvc .net-3.5 html-helper

在Html 5中,文本框上有一个名为autofocus的新属性。

问题是它是一个布尔值(有或没有)

它应该类似于:

<input name="a" value="" autofocus>

我试过了:

<%= Html.TextBox( "a", null, new { autofocus } ) %>

但是,它给了我一个错误,因为我没有为自动对焦设置值......

我知道我可以手动完成,但我可以使用Html.TextBox吗?

3 个答案:

答案 0 :(得分:25)

尝试<%= Html.TextBox( "a", null, new { autofocus = "" } ) %>

根据HTML5 spec on boolean attributes

  

如果属性存在,则其值必须是空字符串,或者是属性的规范名称的ASCII不区分大小写匹配的值,没有领先或尾随空格。

所以要么

  • <input name="a" value="" autofocus>
  • <input name="a" value="" autofocus="">
  • <input name="a" value="" autofocus="autofocus">

应该有效。

答案 1 :(得分:4)

此外,您还可以执行以下一些其他属性:

@Html.TextBoxFor(m => m.Email, new { @class = "class1", @placeholder = "Email", @autofocus = "autofocus" })

注意:只有自动对焦问题在于,在IE浏览器中,当输入控件处于焦点时,占位符文本不会显示(这是IE的一个问题)。

答案 2 :(得分:3)

从XHTML开始,启用这种布尔属性的标准方法是:

<input name="a" value="" autofocus="autofocus" />

因此,假设在HTML5中仍然有效,您可以使用以下代码:

<%=Html.TextBox( "a", null, new { autofocus: "autofocus" } ) %>