Asp.Net Mvc - Html.TextBox - установить свойство автофокуса

В Html 5 есть новый атрибут в текстовом поле, называемом автофокусом.

Проблема в том, что это логическое значение (там или нет)

Он должен выглядеть примерно так:

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

Я пробовал:

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

Но это дает мне ошибку, потому что я не устанавливаю значение для автофокусировки...

Я знаю, что могу сделать это вручную, но могу ли я сделать это с помощью Html.TextBox?

Ответы

Ответ 1

Попробуйте <%= Html.TextBox( "a", null, new { autofocus = "" } ) %>

В соответствии с спецификацией HTML5 для атрибутов boolean:

Если атрибут присутствует, его значение должно быть либо пустой строкой, либо значением, которое является несоответствующим регистру ASCII совпадением для атрибута canonical name, без ведущее или завершающее пробелы.

Итак, либо

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

должен быть действительным.

Ответ 2

В XHTML стандартным способом включения такого логического атрибута будет:

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

поэтому, считая, что все еще действует в HTML5, вы можете использовать следующий код:

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

Ответ 3

Кроме того, вы можете сделать следующее вместе с некоторыми другими атрибутами:

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

Примечание. Только проблема с автофокусом заключается в том, что в браузерах IE текст-заполнитель не отображается, когда элемент управления ввода находится в фокусе (это проблема с IE).