There is a syntax error in this function, but I am not clear what it is.
The username is stored on a cookie and retrieved by the server, if it exists.
When the page loads, if the username does not get populated, I want the focus on the username textbox.
Otherwise I want it on the password textbox;
<h2>Log On</h2>
<p>
Please enter your username and password.
</p>
<% using (Html.BeginForm()) { %>
<%: Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %>
<div>
<fieldset>
<legend>Account Information</legend>
<div class="editor-label">
<%: Html.LabelFor(m => m.UserName) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(m => m.UserName) %>
<%: Html.ValidationMessageFor(m => m.UserName) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(m => m.Password) %>
</div>
<div class="editor-field">
<%: Html.PasswordFor(m => m.Password) %>
<%: Html.ValidationMessageFor(m => m.Password) %>
</div>
<div class="editor-label">
<%: Html.CheckBoxFor(m => m.RememberMe) %>
<%: Html.LabelFor(m => m.RememberMe) %>
</div>
<p>
<input type="submit" value="Log On" />
</p>
</fieldset>
</div>
<% } %>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
if (!$.trim($("#UserName")).length) { // zero-length string AFTER a trim
$("#UserName").focus();
}
else {
$("#Password").focus();
}
});
</script>
I found this did the trick;