wc-dropdown
v1.0.3
Published
Dropdown menu web component
Downloads
2
Maintainers
Readme
wc-dropdown
Dropdown menu web component.
Install
$ npm install wc-dropdownSyntax
<script src="dropdown.js"></script>
<form action="#" method="POST">
<dropdown-menu
placeholder="Please select one"
maxitems="5"
name="city"
options="[
{"name": "option 1", "value":"A01"},
{"name": "option 2", "value":"A02"},
{"name": "option 3", "value":"A03"},
{"name": "option 4", "value":"A04"}
]"
></dropdown-menu>
<input type="submit" value="submit" />
</form>Demo page
The demo page: https://yishiashia.github.io/dropdown.html
Usage
If you want to customize this web component, you can import the library and
implement your new class by extend Dropdown.
import Dropdown from "wc-dropdown";
class customizedDropdown extends Dropdown {
// override here
}
Options
placeholder
String type. The hint words of dropdown menu.
maxitems
Number type. The max length of displayed items at one time in the dropdown menu.
name
String typs. The name of input, it would be the POST parameter name.
options
Array of option item. Each option item include at least name and value fields.
example:
[
{"name": "option 1", "value": "a1"},
{"name": "option 2", "value": "a2"},
{"name": "option 3", "value": "a3"}
]When passing options as element attribute, it must escape the quotes mark, for example:
[
{"name": "option 1", "value": "a1"},
{"name": "option 2", "value": "a2"},
{"name": "option 3", "value": "a3"}
]Another way to set options is using javascript:
let menuElement = document.querySelector('dropdown-menu')
menuElement.options = [
{name: "option 1", value: "option_1"},
{name: "option 2", value: "option_2"},
{name: "option 3", value: "option_3"}
]Event
change event
When user choose one option, a change event will be dispatch, and you can bind an event listener to handle it:
let menuElement = document.querySelector('dropdown-menu')
menuElement.addEventListener('change', function(option) {
console.log(option.detail)
/*
output example:
{ name: "option 2", value: "option_2" }
*/
})
