/ / DOM non in caricamento impedisce focus () nel controllo TextBoxFor - jquery, asp.net-mvc, dom

Il DOM non in caricamento impedisce la messa a fuoco () nel controllo TextBoxFor - jquery, asp.net-mvc, dom

Non sono sicuro del motivo per cui il mio focus () non funziona su una vista.

Ho un corso in JQuery, passato attraverso una pagina master, definito come: $ ( "Focus") messa a fuoco ().;

Questo funziona per le caselle di testo definite altrove nel mio codice. Per esempio:

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

Ma su una vista con codice simile, il focus non è impostato:

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

Se la mia classe di attenzione funziona con altri controlliquindi non può essere il mio jquery. Ho provato molte opzioni per impostare questo tra cui $ ("# EmailAddress1"). focus () e definire il mio jquery nella stessa vista e altre opzioni accanto a questo. L'unica cosa che funziona senza fare clic nella casella di testo è premere il pulsante di ricarica (Chrome e IE9), il che mi porta a credere che il DOM non si stia caricando. Ma nel mio jquery uso: $ (document) .ready (function () {

Non so come risolvere questo problema. Qualcuno può aiutare?

Post scriptum In ulteriori test, ho scoperto che altri elementi di classe in JQuery funzionano. Ad esempio, <% = Html.TextBoxFor (de => de.EmailAddress1, nuovo {@class = "focus phoneNumber"})%> Sia phoneNumber che focus sono nello stesso .js $ ( "Focus") messa a fuoco ().; $ (". phoneNumber"). mask ("(999) 999-9999");

Ma verrà visualizzato solo phoneNumber e la messa a fuoco no.

risposte:

0 per risposta № 1

Devi fornire ID se vuoi impostare la classe di messa a fuoco usando jQuery in questo modo:

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

Ora in jQuery:

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