2010-06-08 15 views
13

In Html 5, c'è un nuovo attributo sulla casella di testo chiamato autofocus.Asp.Net Mvc - Html.TextBox - Imposta la proprietà di messa a fuoco automatica

Il problema è che si tratta di un valore booleano (c'è o non c'è)

Dovrebbe essere qualcosa di simile:

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

ho provato:

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

Ma, dà un errore perché non sto impostando un valore per l'autofocus ...

So che posso farlo manuall y, ma posso farlo con Html.TextBox?

risposta

23

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

Secondo il HTML5 spec on boolean attributes:

Se l'attributo è presente, il suo valore deve essere sia il stringa vuota o un valore che è una corrispondenza case-insensitive ASCII per il nome canonico dell'attributo, senza spazi iniziali o finali.

Quindi, o

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

dovrebbe essere valido.

3

Come di XHTML, il modo standard per consentire un attributo come booleano sarebbe:

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

quindi, partendo dal presupposto che è ancora valida in HTML5, è possibile utilizzare il seguente codice:

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

Inoltre, si può fare seguendo insieme ad alcuni altri attributi:

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

Nota: emettere solo ingegno L'autofocus è che, nei browser IE, il testo segnaposto non viene visualizzato quando il controllo di input è a fuoco (è un problema con IE).

Problemi correlati