Ich habe ein jQuery UI-Dialogfeld mit einem Einfeldformular, und die autoOpen -Eigenschaft wird am Anfang auf false gesetzt. Es gibt ein weiteres jQuery UI-Menü auf der Seite und die offene Funktion des Dialogfelds ist an das click -Ereignis der Menüelemente gebunden. Ich habe versucht, den Fokus auf das einzige Formularfeld des Dialogs zu setzen, wenn der Dialog beim Anklicken der Menüpunkte irgendwie kein Glück hat. Um die Ursache genau zu bestimmen, habe ich auch eine weitere Test-Schaltfläche hinzugefügt und durch Klicken auf diese Schaltfläche kann ich den Fokus auf das Formularfeld setzen. Ich bin mir ziemlich sicher, dass das jQuery UI-Menü den Fokus des Feldes verhindert. Ich frage mich, ob es irgendwie möglich ist, diese Einschränkung zu umgehen. Jeder Einblick wird geschätzt. Vielen Dank!Der Fokus kann nicht auf ein Formularfeld in einem jQuery-UI-Dialogfeld beim Klicken auf einen jQueryUI-Menüeintrag gesetzt werden.
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');
}
});
Hier ist die js fiddle
Hallo @Trevor testete ich Ihre Geige ein wenig aus und es scheint, jedes Mal, wenn die Seite geladen wird, wird der erste Klick auf Menüpunkte nicht den Fokus gesetzt und alle Klicks danach perfekt funktionieren. Es ist definitiv näher an dem, was ich will. Schätze deine Hilfe. – aarryy
Hallo @Trevor, ich habe Ihre Lösung mit meinem echten Workaround getestet und überraschend hat es funktioniert. Ich kann die Logik dahinter nicht sehen. Es ist wahrscheinlich, weil die echte Problemumgehung nicht die genau gleiche Version von jquery und jquery UI verwendet. Wie auch immer, vielen Dank für die Hilfe. – aarryy
Ihr Willkommen, das ist seltsam auf meiner Geige, es funktioniert das erste Mal für mich. Stelle dir das vor. – Trevor