Revision 1e53a13e
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
js/autocomplete_customer.js | ||
---|---|---|
14 | 14 |
RIGHT: 39, |
15 | 15 |
PAGE_UP: 33, |
16 | 16 |
PAGE_DOWN: 34, |
17 |
SHIFT: 16, |
|
18 |
CTRL: 17, |
|
19 |
ALT: 18, |
|
17 | 20 |
}; |
18 | 21 |
var CLASSES = { |
19 | 22 |
PICKED: 'customer-vendor-picker-picked', |
... | ... | |
132 | 135 |
select: function(event, ui) { |
133 | 136 |
set_item(ui.item); |
134 | 137 |
}, |
138 |
search: function(event, ui) { |
|
139 |
if ((event.which == KEY.SHIFT) || (event.which == KEY.CTRL) || (event.which == KEY.ALT)) |
|
140 |
event.preventDefault(); |
|
141 |
} |
|
135 | 142 |
}); |
136 | 143 |
/* In case users are impatient and want to skip ahead: |
137 | 144 |
* Capture <enter> key events and check if it's a unique hit. |
... | ... | |
164 | 171 |
}); |
165 | 172 |
return false; |
166 | 173 |
} |
167 |
} else { |
|
174 |
} else if ((event.which != KEY.SHIFT) && (event.which != KEY.CTRL) && (event.which != KEY.ALT)) {
|
|
168 | 175 |
state = STATES.UNDEFINED; |
169 | 176 |
} |
170 | 177 |
}); |
Auch abrufbar als: Unified diff
CustomerVendorPicker: Taskendrücke auf Shift, Ctrl & Alt ignorieren
Andernfalls wird schon beim Drücken eines der Modifier eine Suche
ausgelöst. Das kann besonders nervig sein, wenn man den Focus vom
Browser wegnimmt:
• Alt+Tab drücken, um zum anderen Fenster zu wechseln
• Schon bei Alt wird eine Suche ausgelöst.
• Durch den Focus-Verlust wird ein Blur-Event ausgelöst.
• Und schon ist der interne Zustand ungültig, und das Element wird rot
dargestellt.
Analoges passiert, wenn man z.B. mit Ctrl+F2 zu einem anderen virtuellen
Desktop wechselt.
Noch schlimmer ist, dass bei Shift+Tab ebenfalls zuerst eine Suche
ausgelöst und anschließend verhindert wird, dass der Focus das Element
verlässt.