2010-06-08 9 views
13

En Html 5, hay un nuevo atributo en el cuadro de texto llamado autofocus.Asp.Net Mvc - Html.TextBox - Establecer propiedad de autoenfoque

El problema es que es un valor booleano (hay o no)

Debe ser algo como:

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

Traté:

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

embargo, se da me da un error porque no estoy estableciendo un valor para el enfoque automático ...

Sé que puedo hacerlo manualmente y, ¿pero puedo hacerlo con Html.TextBox?

Respuesta

23

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

De acuerdo con la HTML5 spec on boolean attributes:

Si el atributo está presente, su valor debe ser o bien la cadena vacía o un valor que es una coincidencia entre mayúsculas y minúsculas ASCII para el nombre canónico del atributo, sin espacios en blanco iniciales o finales.

Así que, o

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

debe ser válida.

3

A partir de XHTML, la forma estándar para permitir un atributo tal booleano sería:

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

, suponiendo que sigue siendo válida en HTML5, podría utilizar el siguiente código:

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

también, puede hacerlo siguiendo junto con algunos otros atributos:

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

Nota: Sólo se emitirá el ingenio El enfoque automático h es que, en los navegadores IE, el texto del marcador de posición no aparece cuando el control de entrada está enfocado (es un problema con IE).

Cuestiones relacionadas