2010-06-08 16 views
13

In HTML 5 gibt es ein neues Attribut in der Textbox namens Autofokus.Asp.Net Mvc - Html.TextBox - Festlegen der Autofokus-Eigenschaft

Das Problem ist, dass es ein boolescher Wert ist (dort oder dort nicht)

es so etwas wie aussehen sollte:

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

Ich habe versucht:

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

Aber es gibt mir ein Fehler, weil ich keinen Wert auf Autofokus setze ...

Ich weiß, ich kann es manuell tun y, aber kann ich das mit Html.TextBox machen?

Antwort

23

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

Nach dem HTML5 spec on boolean attributes:

Wenn das Attribut vorhanden ist, muss sein Wert entweder die leere Zeichenfolge oder ein Wert, der eine ASCII-Groß- und Kleinschreibung Übereinstimmung für die ist Kanonischer Name des Attributs, ohne führende oder nachfolgende Leerzeichen.

Also entweder

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

sollte gültig sein.

3

Ab XHTML, der normale Weg, eine solche Boolesche Attribut zu ermöglichen wäre:

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

daher davon aus, dass in HTML5 noch gültig ist, können Sie den folgenden Code verwenden:

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

Sie können aber auch mit einigen anderen Attribute gehen Sie wie folgt zusammen:

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

Hinweis: Nur Witz Ausgabe h Autofokus ist, dass in IE-Browsern, Platzhalter Text nicht angezeigt wird, wenn das Eingabesteuerelement im Fokus ist (es ist ein Problem mit IE).

Verwandte Themen