/ / Načítanie DOM sa nezabráni fokusu () v ovládači TextBoxFor - jquery, asp.net-mvc, dom

DOM nenahrádza zabraňuje zaostrovaniu () v ovládacom paneli TextBoxFor - jquery, asp.net-mvc, dom

Nie som si istý, prečo moje zameranie () nefunguje na jednom pohľade.

Mám triedu v JQuery, ktorá prešla hlavnou stránkou definovanou ako: $ ( "Zamerajú") zameria ().

Toto funguje pre textové polia definované inde v mojom kóde. Napríklad:

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

Ale na jednom pohľade s podobným kódom nie je zameranie:

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

Ak moja trieda zaostrenia pracuje s inými ovládacími prvkamipotom to môže byť „moja jquery. Skúsil som veľa možností na nastavenie, vrátane $ („ # EmailAddress1 “). focus () a definovania mojej vlastnej jQuery v rovnakom pohľade a ďalších možností okrem toho. Jediná vec, ktorá funguje bez kliknutia v samotnom textovom poli, je stlačiť tlačidlo obnovenia (Chrome a IE9), čo ma vedie k presvedčeniu, že sa DOM nenačítava. Ale vo svojej jQuery používam: $ (document) .ready (function () {

Neviem, ako tento problém vyriešiť. Môže mi niekto pomôcť?

PS: V ďalších testoch som zistil, že v triede JQuery fungujú aj ďalšie prvky triedy. Napríklad, <% = Html.TextBoxPre (de => de.EmailAddress1, nové {@class = "focus phoneNumber"})%> Telefónne číslo aj zameranie sú rovnaké .js $ ( "Zamerajú") zameria (). $ (". phoneNumber"). maska ​​("(999) 999-9999");

Ale zobrazí sa iba telefónne číslo a zaostrenie nebude.

odpovede:

0 pre odpoveď č. 1

Musíte to poskytnúť ID ak chcete nastaviť triedu zaostrenia pomocou jQuery, ako je tento:

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

Teraz v jQuery:

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