In Html 5, there is a new attribute on textbox called autofocus.
The problem is that it is a boolean value (there or not there)
It should look something like :
<input name="a" value="" autofocus>
I tried :
<%= Html.TextBox( "a", null, new { autofocus } ) %>
But, it gives me an error because I'm not setting a value to autofocus...
I know I can do it manually, but can I do it with Html.TextBox ?
Try <%= Html.TextBox( "a", null, new { autofocus = "" } ) %>
According to the HTML5 spec on boolean attributes:
If the attribute is present, its value must either be the empty string or a value that is an ASCII case-insensitive match for the attribute's canonical name, with no leading or trailing whitespace.
So either
<input name="a" value="" autofocus>
or
<input name="a" value="" autofocus="">
or
<input name="a" value="" autofocus="autofocus">
should be valid.
Also, you can do following along with some other attributes:
@Html.TextBoxFor(m => m.Email, new { @class = "class1", @placeholder = "Email", @autofocus = "autofocus" })
Note: Only issue with autofocus is that, in IE browsers, placeholder text does not get displayed when the input control is in focus (it's an issue with IE).
As of XHTML, the standard way to enable such a boolean attribute would be:
<input name="a" value="" autofocus="autofocus" />
therefore, assuming that is still valid in HTML5, you could use the following code:
<%=Html.TextBox( "a", null, new { autofocus: "autofocus" } ) %>