2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-01 05:54:03 +03:00
Files
vue-select/docs/guide/keydown.md
T
2019-10-25 18:47:33 -07:00

53 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### Customizing Keydown Behaviour
---
Vue Select provides the `map-keydown` Function prop to allow for customizing the components response to
keydown events while the input has focus. Here's the default function definition:
```js
/**
* @param map {Object} Mapped keyCode to handlers { <keyCode>: <callback> }
* @param vm {Vue/Component} Vue Select instance
* @return {Object}
*/
(map, vm) => map,
```
By default, the prop is a noop returning the same object `map` object it receives. This object
maps keyCodes to handlers: `{ <keyCode>: <callback> }`. Modifying this object can override default
functionality, or add handlers for different keys that the component doesn't normally listen for.
### Example: Tag on `comma` and `space`
If I have a taggable input, and I want `comma` or `space` to 'tag' the current option, you could
solve that with map-keydown. Since the tab button already creates tags, we can copy the handler
for keyCode 9.
```vue
<template>
<v-select taggable multiple no-drop :map-keydown="handlers"/>
</template>
<script>
export default {
methods: {
handlers (map, vm) {
const createTag = e => {
e.preventDefault();
vm.typeAheadSelect();
vm.searchEl.focus();
};
return {
...map, // defaults
32: createTag, // space
188: createTag, // comma
};
},
},
};
</script>
```
<custom-handlers></custom-handlers>