diff --git a/resources/views/approvals/partials/_expense-form.blade.php b/resources/views/approvals/partials/_expense-form.blade.php index 80f13496..29d70d56 100644 --- a/resources/views/approvals/partials/_expense-form.blade.php +++ b/resources/views/approvals/partials/_expense-form.blade.php @@ -599,6 +599,7 @@ function vendorSearch(item) { let dropdown = null; let results = []; let highlighted = -1; + let selected = false; function removeDropdown() { if (dropdown) { dropdown.remove(); dropdown = null; } @@ -640,16 +641,20 @@ function renderDropdown(inputEl) { item.vendor_id = results[idx].id; item.vendor_biz_no = results[idx].biz_no || ''; inputEl.value = results[idx].name; - inputEl.dispatchEvent(new Event('input', { bubbles: true })); + selected = true; } removeDropdown(); + inputEl.blur(); }); }); } return { onInput(value) { + if (selected) { selected = false; return; } item.vendor = value; + item.vendor_id = null; + item.vendor_biz_no = ''; highlighted = -1; clearTimeout(debounceTimer); if (value.length < 1) { removeDropdown(); return; } @@ -657,7 +662,8 @@ function renderDropdown(inputEl) { }, onFocus() { - if (item.vendor && item.vendor.length >= 1) { + if (selected) return; + if (item.vendor && item.vendor.length >= 1 && !dropdown) { this.search(item.vendor); } }, @@ -690,7 +696,9 @@ function renderDropdown(inputEl) { item.vendor_id = p.id; item.vendor_biz_no = p.biz_no || ''; this.$refs.vinput.value = p.name; + selected = true; removeDropdown(); + this.$refs.vinput.blur(); } }, };