React Base Fiddle (JSX)
Starting point for creating JSFiddles with React. This uses React with Addons.
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/JSXTransformer.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.1/react-with-addons.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
<script src="ttps://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://facebook.github.io/react/js/jsfiddle-integration.js"></script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/rolandsusans/react-chosen/master/react-chosen.js"></script>
<div>
Single select:
<div id="single"></div>
</div>
<br>
<div>
Multiselect:
<div id="multiple"></div>
</div>
<div id="single-values"></div>
<div id="multiple-values"></div>
JavaScript 1.7
const SINGLE = 'single';
const MULTIPLE = 'multiple';
/**
* React class that renders each option
*/
var Option = React.createClass({
render: function(){
return (
<option key={this.props.value} value={this.props.value}> {this.props.label} </option>
);
}
});
var ChosenComponent = React.createClass({
getInitialState: function (){
return {
chosenType: this.props.chosenType,
};
},
/**
* This method is called when value is selected by user
* @param selected
*/
handleSelect:function(selected){
this.props.handleChange(selected);
},
/**
* According to @see this.state.chosenType
* renders multiple or single choise component
*
* @param options
* @param valueSelected
* @returns {XML}
*/
renderChosen: function(options, valueSelected){
if(this.state.chosenType == SINGLE){
return (
<Chosen defaultValue={valueSelected} onChange={this.handleSelect} width={"250px"}>
{options.map(function (option) {
return (
<Option key={option.value} value={option.value} label={option.label}/>
)
}, this)}
</Chosen>
);
}else if(this.state.chosenType == MULTIPLE){
return (
<Chosen defaultValue={valueSelected}
placeholderTextMultiple={this.props.placeholderTextMultiple}
onChange={this.handleSelect}
ref={'reactChosen'}
multiple
width={"250px"}
>
{options.map(function (option) {
return (
<Option key={option.value}
value={option.value}
...