Fix broken event listeners - properly close click handler and wrap keydown

BUGFIX: Uncaught SyntaxError expected expression, got ')'

PROBLEM: Event listeners were malformed - click handler and keydown handler
were merged into one broken block

ROOT CAUSE: The click event listener was missing its closing braces and
btnAdd.click() call. Instead, the keydown handler code was pasted directly
after it WITHOUT the proper addEventListener wrapper. This caused:
1. Missing closing brackets for click handler
2. Reference to undefined 'e' variable (e.key) outside function scope
3. Browser threw SyntaxError/ReferenceError

SOLUTION:
1. Properly closed click event listener:
   - Added btnAdd.click() call
   - Added closing braces for function and addEventListener
   - Added closing }); for forEach loop
   - Added closing }); for \$.get() AJAX call

2. Created separate keydown event listener:
   - Wrapped keyboard navigation code in lookup.addEventListener('keydown', function(e) {...})
   - Now 'e' variable is properly defined in function scope
   - Arrow keys, Enter, Escape all have access to event object

CODE STRUCTURE NOW:
- item.addEventListener('click', ...) - PROPERLY CLOSED
- }); // closes forEach
- }, 'json'); // closes AJAX
- }); // closes input event
- lookup.addEventListener('keydown', function(e) {...}) - NEW/PROPER

All event handlers are now independent and properly scoped.
This commit is contained in:
DevSoftTech Server 2026-06-06 06:16:17 +05:30
parent 1a592eda7c
commit 6f5bacc723

View File

@ -1905,6 +1905,14 @@ $allergyStatusNoKnown = in_array($allergyStatusNormalized, ['no known drug aller
lookup.value = value;
dropdown.style.display = 'none';
if (btnAdd) {
btnAdd.click();
}
});
});
}, 'json');
});
lookup.addEventListener('keydown', function(e) {
var items = dropdown.querySelectorAll('.dropdown-item');
var isVisible = dropdown.style.display === 'block' && items.length > 0;