2010-06-08 3 views
13

En Html 5, il existe un nouvel attribut sur la zone de texte appelée autofocus.Asp.Net Mvc - Html.TextBox - Définir la propriété Autofocus

Le problème est qu'il est une valeur booléenne (il ou non)

Il devrait ressembler à:

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

J'ai essayé:

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

Mais, il donne moi une erreur parce que je ne mets pas une valeur à l'autofocus ...

Je sais que je peux le faire manuall y, mais puis-je le faire avec Html.TextBox?

Répondre

23

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

Selon le HTML5 spec on boolean attributes:

Si l'attribut est présent, sa valeur doit être soit la chaîne vide ou une valeur qui est une correspondance insensible à la casse ASCII pour la nom canonique de l'attribut, sans espaces avant ou arrière.

Donc, soit

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

doit être valide.

3

Au XHTML, la manière standard pour permettre à un tel attribut booléen serait:

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

donc, en supposant que est toujours valide en HTML5, vous pouvez utiliser le code suivant:

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

en outre, vous pouvez faire suivant avec quelques autres attributs:

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

note: seule question d'esprit h autofocus est que, dans les navigateurs IE, le texte de l'espace réservé ne s'affiche pas lorsque le contrôle d'entrée est en focus (c'est un problème avec IE).

Questions connexes