Mam okno dialogowe interfejsu użytkownika jQuery zawierające formularz jedno pole, a właściwość autoOpen jest ustawiona na wartość false na początku. Na stronie jest inne menu interfejsu jQuery, a otwarta funkcja okna dialogowego jest powiązana ze zdarzeniem kliknięcia pozycji menu. Próbowałem ustawić fokus na jedyne pole formularza w oknie dialogowym, gdy okno dialogowe jest otwarte po kliknięciu pozycji menu jakoś nie ma szczęścia. Aby wskazać przyczynę, dodałem kolejny przycisk testowy i klikając ten przycisk, mogę ustawić ostrość na polu formularza. Jestem więc pewien, że to menu interfejsu jQuery zapobiega ustawianiu ostrości w polu. Zastanawiam się, czy istnieje jakiś sposób na obejście tego ograniczenia. Wszelkie docenienia jest doceniane. Dzięki!Nie można ustawić fokusu na pole formularza w oknie dialogowym interfejsu użytkownika jQuery po kliknięciu elementu menu jQueryUI.
html:
<ul id="menu">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
</ul>
</br>
<button id="btn">Open the dialog</button>
<div id="dialog" title="Basic dialog">
<form>
<input type="text" id="fld" />
</form>
</div>
javascript:
$("#dialog").dialog({
autoOpen: false,
open: function(event, ui){
$('#fld').focus();
}
});
$('#btn').click(function(e){
$("#dialog").dialog('open');
});
$('#menu li a').click(function(){
$("#dialog").dialog('open');
})
$("#menu").menu({
select: function(event, ui) {
$("#dialog").dialog('open');
}
});
Oto js fiddle
Hi @Trevor, testowałem swoje skrzypce się trochę i wydaje się za każdym razem, gdy strona jest załadowany, pierwsze kliknięcie na pozycji menu nie ustawia ostrość i wszystkie kliknięcia potem działać idealnie. Jest zdecydowanie bliżej tego, co chcę. Doceniam Twoją pomoc. – aarryy
Witam @Trevor, przetestowałem twoje rozwiązanie z moim prawdziwym obejściem i zadziwiająco zadziałało. Nie widać logiki za tym. Prawdopodobnie dlatego, że rzeczywiste obejście nie używa dokładnie tej samej wersji interfejsu jquery i jquery. W każdym razie dziękuję za całą pomoc. – aarryy
Twoje powitanie, to dziwne na moim skrzypcach, działa po raz pierwszy dla mnie. Domyśl. – Trevor