Skip to content

Commit d77be4a

Browse files
committed
Prevent change event if change happens on esc
1 parent b057a82 commit d77be4a

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/wp-includes/widgets/class-wp-widget-categories.php

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,29 @@ public function widget( $args, $instance ) {
9797

9898
<script>
9999
(function() {
100-
var dropdown = document.getElementById( '<?php echo esc_js( $dropdown_id ); ?>' );
100+
var dropdown = document.getElementById( '<?php echo esc_js( $dropdown_id ); ?>' ), lastkey;
101101
function onCatChange(e) {
102-
if ( 'keyup' === e.type && 'Escape' !== e.key ) {
102+
setTimeout(function() {
103+
lastKey = dropdown.getAttribute( 'data-lastkey' );
104+
if ( 'change' === e.type && 'escape' === lastKey ) {
103105
return;
104-
}
106+
}
105107
if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) {
106-
dropdown.parentNode.submit();
108+
dropdown.parentNode.submit();
107109
}
110+
}, 250 );
108111
}
109-
dropdown.addEventListener( 'change', onCatChange(e) );
112+
dropdown.addEventListener( 'keyup', function(e) {
113+
if ( 'Escape' === e.key ) {
114+
dropdown.setAttribute( 'data-lastkey', 'escape' );
115+
} else {
116+
dropdown.removeAttribute( 'data-lastkey' );
117+
}
118+
});
119+
dropdown.addEventListener( 'click', function() {
120+
dropdown.removeAttribute( 'data-lastkey' );
121+
});
122+
dropdown.onchange = onCatChange;
110123
})();
111124
</script>
112125

0 commit comments

Comments
 (0)