/ / DOMが読み込まれていないため、TextBoxForコントロールでfocus()ができません-jquery、asp.net-mvc、dom

DOMの読み込みがTextBoxForコントロールのフォーカス()を妨げる - jquery、asp.net-mvc、dom

focus()が1つのビューで動作しない理由がわかりません。

次のように定義されたマスターページを介して渡されるJQueryのクラスがあります。 $( "。focus")。focus();

これは、コード内の他の場所で定義されているテキストボックスに対して機能します。例えば:

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

しかし、同様のコードを持つ1つのビューでは、フォーカスは設定されていません。

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

フォーカスクラスが他のコントロールと連携している場合私のjqueryにはできません。これを設定するために、$( "#EmailAddress1")。focus()を含む多くのオプションを試してみました。テキストボックス自体をクリックせずに機能する唯一の方法は、リロードボタン(ChromeとIE9)を押すことです。これにより、DOMがロードされていないと思われます。しかし、私のjqueryでは次を使用します。 $(document).ready(function(){

この問題を解決する方法がわかりません。誰か助けてもらえますか?

追伸 さらなるテストでは、JQueryの他のクラス要素が機能することがわかりました。たとえば、 <%= Html.TextBoxFor(de => de.EmailAddress1、new {@class = "focus phoneNumber"})%> phoneNumberとfocusの両方が同じ.jsにあります $( "。focus")。focus(); $( "。phoneNumber")。mask( "(999)999-9999");

ただし、phoneNumberのみが表示され、フォーカスは表示されません。

回答:

回答№1は0

提供する必要があります ID 次のようにjQueryを使用してフォーカスクラスを設定する場合:

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

jQuery

$(document).ready(function(){
$("#EmailAddress").focus();
});