0

我不确定为什么我的 focus() 不能在一个视图上工作。

我在 JQuery 中有一个类,通过母版页传递,定义为: $(".focus").focus();

这适用于我代码中其他地方定义的文本框。例如:

<td><%: Html.DropDownListFor(p => p.PhoneTypeId, phoneTypeListItems, new{@class="focus"}) %></td>

但是在具有类似代码的一个视图上,没有设置焦点:

<td><%=Html.TextBoxFor(de => de.EmailAddress1, new {@class="focus"})%></td>

如果我的焦点课程正在使用其他控件,那么它就不可能是我的 jquery。我尝试了许多选项来设置它,包括 $("#EmailAddress1").focus() 并在同一视图中定义我自己的 jquery 以及除此之外的其他选项。唯一能在不点击文本框的情况下点击重新加载按钮(Chrome 和 IE9),这让我相信 DOM 没有加载。但在我的 jquery 中,我使用: $(document).ready(function () {

我不知道如何解决这个问题。任何人都可以帮忙吗?

PS 在进一步的测试中,我发现 JQuery 中的其他类元素也可以工作。例如, <%=Html.TextBoxFor(de => de.EmailAddress1, new { @class = "focus phoneNumber" })%> phoneNumber 和 focus 都在同一个 .js 中 $(".focus").focus( ); $(".phoneNumber").mask("(999) 999-9999");

但只有 phoneNumber 会显示,焦点不会。

4

1 回答 1

0

如果要使用 jQuery 设置焦点类,则必须提供ID ,如下所示:

<td><%=Html.TextBoxFor(de => de.EmailAddress1, new {@class="focus", id = "EmailAddress", name = "EmailAddress"})%></td>

现在在jQuery中:

$(document).ready(function(){
    $("#EmailAddress").focus();
});
于 2013-04-22T17:25:05.993 回答