diff --git a/docs/api/props.md b/docs/api/props.md index 2ae8284a8..e54126f7f 100644 --- a/docs/api/props.md +++ b/docs/api/props.md @@ -120,6 +120,19 @@ clearSearchOnSelect: { }, ``` +## clearSearchOnBlur + +Enables/disables clearing the search text when the search input is blurred. + +```js +clearSearchOnBlur: { + type: Function, + default: function ({ clearSearchOnSelect, multiple }) { + return clearSearchOnSelect && !multiple + } +}, +``` + ## closeOnSelect Close a dropdown when an option is chosen. Set to false to keep the dropdown diff --git a/tests/unit/ReactiveOptions.spec.js b/tests/unit/ReactiveOptions.spec.js index cbbb725ae..f28320f1d 100755 --- a/tests/unit/ReactiveOptions.spec.js +++ b/tests/unit/ReactiveOptions.spec.js @@ -112,28 +112,28 @@ describe("Reset on options change", () => { expect(Select.vm.selectedValue).toEqual([{ label: "oneLabel", value: "one" }]); }); - it('default behavior when blur search field is to clean it.', () => { + it('clearSearchOnBlur returns false when multiple is true', () => { const Select = mountDefault({}); let clearSearchOnBlur = jest.spyOn(Select.vm, 'clearSearchOnBlur'); - Select.find({ ref: "search" }).trigger("click"); - Select.setData({ search: "one" }); - Select.find({ ref: "search" }).trigger("blur"); + Select.find({ref: 'search'}).trigger('click'); + Select.setData({search: 'one'}); + Select.find({ref: 'search'}).trigger('blur'); expect(clearSearchOnBlur).toHaveBeenCalledTimes(1); expect(clearSearchOnBlur).toHaveBeenCalledWith({ clearSearchOnSelect: true, - multiple: false + multiple: false, }); expect(Select.vm.search).toBe(''); }); - it('control behavior when blur search field.', () => { + it('clearSearchOnBlur accepts a function', () => { let clearSearchOnBlur = jest.fn(() => false); const Select = mountDefault({clearSearchOnBlur}); - Select.find({ ref: "search" }).trigger("click"); - Select.setData({ search: "one" }); - Select.find({ ref: "search" }).trigger("blur"); + Select.find({ref: 'search'}).trigger('click'); + Select.setData({search: 'one'}); + Select.find({ref: 'search'}).trigger('blur'); expect(clearSearchOnBlur).toHaveBeenCalledTimes(1); expect(Select.vm.search).toBe('one');