14

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 ?

3 Answers 3

27

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.

Sign up to request clarification or add additional context in comments.

Comments

3

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" } ) %>

Comments

3

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).

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.