fixing dropdown disabling on dropdown click
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -49,12 +49,16 @@
|
|||||||
console.warn(`${candidate.display} selected, but onSelect not overridden!`)
|
console.warn(`${candidate.display} selected, but onSelect not overridden!`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function disableDropdown(){
|
||||||
|
candidates = [];
|
||||||
|
selected = null;
|
||||||
|
}
|
||||||
|
|
||||||
async function ondblclick(evt){
|
async function ondblclick(evt){
|
||||||
const select = evt.target;
|
const select = evt.target;
|
||||||
const idx = select.value;
|
const idx = select.value;
|
||||||
candidate = candidates[idx];
|
candidate = candidates[idx];
|
||||||
candidates = [];
|
disableDropdown();
|
||||||
selected = null;
|
|
||||||
onSelect(candidate);
|
onSelect(candidate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,8 +68,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onblur(ev){
|
function onblur(ev){
|
||||||
candidates = [];
|
setTimeout(disableDropdown,400);
|
||||||
selected = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function onkeyup(ev){
|
async function onkeyup(ev){
|
||||||
@@ -88,22 +91,19 @@
|
|||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
if (selected != null && selected < candidates.length) {
|
if (selected != null && selected < candidates.length) {
|
||||||
candidate = candidates[selected];
|
candidate = candidates[selected];
|
||||||
candidates = [];
|
disableDropdown();
|
||||||
selected = null;
|
|
||||||
onSelect(candidate);
|
onSelect(candidate);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ev.key == 'Enter') {
|
if (ev.key == 'Enter') {
|
||||||
candidates = [];
|
disableDropDown();
|
||||||
selected = null;
|
|
||||||
if (onCommit(candidate)) candidate = { display : '' };
|
if (onCommit(candidate)) candidate = { display : '' };
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (ev.key == 'Escape'){
|
if (ev.key == 'Escape'){
|
||||||
ev.preventDefault();
|
ev.preventDefault();
|
||||||
candidates = [];
|
disableDropdown();
|
||||||
selected = null;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,10 +115,8 @@
|
|||||||
|
|
||||||
function select(index){
|
function select(index){
|
||||||
candidate = candidates[index];
|
candidate = candidates[index];
|
||||||
selected = null;
|
disableDropdown();
|
||||||
candidates = [];
|
|
||||||
onSelect(candidate);
|
onSelect(candidate);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function scrollTo(index){
|
function scrollTo(index){
|
||||||
|
|||||||
Reference in New Issue
Block a user