I would like to autofocus on an editorfor in my application, but I can\'t seem to do that. I have successfully used autofocus on a textbox, but I would like to use an editor
Using .Net Framework 4.5 and MVC 5, this works for me:
@Html.EditorFor(model => model.Description, new {
htmlAttributes = new {
@class = "form-control",
autofocus = true
}
})
You put the autofocus attribute in the wrong spot.
@Html.EditorFor(model => model.Description,
new { htmlAttributes = new { @class = "form-control" }, autofocus = "" })
Try this instead:
@Html.EditorFor(model => model.Description,
new { htmlAttributes = new { @class = "form-control", autofocus = "" } })
I've been following this thread and I may have stumbled on an answer to your question about autofocus on EditorFor - this is all Asp.Net 4.5 and MVC 5, not that it matters.
In the Scripts folder I have a jQuery script file:
$(function(){ $('.someclassname').focus(); });
I add the script name to the BundleConfig and render it in the view.
<div class="col-md-10" someclassname">
type="text" autofocus="autofocus"
to the EditorFor's @class. So, new{@class="form-control", type="text", autofocus="autofocus"
.someclassname
field gets the cursor focus...
PS. In fact if you just do (3) it works also...This s because you are using EditorFor instead of something specific like TextBoxFor.
@Html.TextBoxFor(model => model.Name, new { htmlAttributes = new {
@class = "form-control" }, autofocus="autofocus"})
Or you can do that using jQuery:
<div class="editor-field focus">
@Html.EditorFor(model => model.Description)
@Html.ValidationMessageFor(model => model.Description)
</div>
$(function() {
$('.focus :input').focus();
});
Update:
As you know TextBoxFor
always creates a textbox with type input, But EditorFor
is a little bit smart, it renders markup based on the datatype of the property.