Skip to content

Instantly share code, notes, and snippets.

@giovanni-d
Created December 22, 2016 19:37
Show Gist options
  • Save giovanni-d/af071be9d41bae3f03b4263a1a6b1838 to your computer and use it in GitHub Desktop.
Save giovanni-d/af071be9d41bae3f03b4263a1a6b1838 to your computer and use it in GitHub Desktop.
Select with multiple="true" in react
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
class Select extends Component{
constructor() {
super();
this.state = {
folders: ['option 0', 'option 1', 'option 3', 'option 4'],
values: []
}
}
handleChange = (e) => {
let options = e.target.options;
let selectedOptions = [];
for(let i = 0; i < options.length; i++) {
if( options[i].selected ) {
selectedOptions.push(options[i].value);
}
}
this.setState({values: selectedOptions});
}
handleSubmit = (e) => {
e.preventDefault();
console.log(this.state.values);
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<select multiple="true" value={this.state.values} onChange={this.handleChange}>
{this.state.folders.map((item, index) =>
<option value={index} key={index}>{item}</option>
)}
</select>
<button type="submit">Go</button>
</form>
);
}
}
ReactDOM.render(
<Select />,
document.getElementById('root')
);
@giovanni-d
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment