mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Dialog: Tabbing out of a modal dialog was possible because keypress doesn't fire for tabs everywhere, switched to keyup. Added Unit Test - Caught by @DomenicDenicola - Fixes #3123 - Tabbing stops in modal dialog
This commit is contained in:
parent
fb57cc8aba
commit
96e5c241e1
@ -3,7 +3,36 @@
|
||||
*/
|
||||
(function($) {
|
||||
|
||||
module("dialog: tickets");
|
||||
module( "dialog: tickets" );
|
||||
|
||||
asyncTest( "#3123: Prevent tabbing out of modal dialogs", function() {
|
||||
expect( 3 );
|
||||
|
||||
var el = $( "<div><input id='t3123-first'><input id='t3123-last'></div>" ).dialog({ modal: true }),
|
||||
inputs = el.find( "input" ),
|
||||
widget = el.dialog( "widget" );
|
||||
|
||||
inputs.eq( 1 ).focus();
|
||||
equal( document.activeElement, inputs[1], "Focus set on second input" );
|
||||
inputs.eq( 1 ).simulate( "keyup", { keyCode: $.ui.keyCode.TAB });
|
||||
|
||||
setTimeout( checkTab, 2 );
|
||||
|
||||
function checkTab() {
|
||||
ok( $.contains( widget, document.activeElement ), "Tab key event moved focus within the modal" );
|
||||
|
||||
// check shift tab
|
||||
$( document.activeElement ).simulate( "keydown", { keyCode: $.ui.keyCode.TAB, shiftKey: true });
|
||||
setTimeout( checkShiftTab, 2 );
|
||||
}
|
||||
|
||||
function checkShiftTab() {
|
||||
ok( $.contains( widget, document.activeElement ), "Shift-Tab key event moved focus within the modal" );
|
||||
|
||||
el.remove();
|
||||
start();
|
||||
}
|
||||
});
|
||||
|
||||
test("#4826: setting resizable false toggles resizable on dialog", function() {
|
||||
expect(6);
|
||||
|
2
ui/jquery.ui.dialog.js
vendored
2
ui/jquery.ui.dialog.js
vendored
@ -293,7 +293,7 @@ $.widget("ui.dialog", {
|
||||
|
||||
// prevent tabbing out of modal dialogs
|
||||
if ( options.modal ) {
|
||||
uiDialog.bind( "keypress.ui-dialog", function( event ) {
|
||||
uiDialog.bind( "keyup.ui-dialog", function( event ) {
|
||||
if ( event.keyCode !== $.ui.keyCode.TAB ) {
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user