JSFiddle - React, Tailwind, and code Playground
by rich_harris
HTML
<main></main>
<script id='template' type='text/ractive'>
{{#each items}}
<label><input type="number" value="{{val}}"/> <strong>{{val}}</strong> ({{min}}-{{max}})</label>
{{/each}}
</script>
CSS
body {
font-family: 'Helvetica Neue', arial, sans-serif;
font-weight: 200;
color: #353535;
}
h1, h2, h3, h4, h5, h6 {
font-weight: 200;
}
.error {
color: #d00;
font-family: monospace;
}
label {
display: block;
}
JavaScript
var ractive = new Ractive({
el: 'main',
template: '#template',
data: {
items: [
{ min: 100, max: 200, val: 500 },
{ min: 0, max: 50, val: -200 }
]
}
});
ractive.observe( 'items.*.val', function ( n, o, k, i ) {
var min = this.get( 'items[' + i + '].min' ),
max = this.get( 'items[' + i + '].max' );
if ( n < min ) this.set( k, min );
if ( n > max ) this.set( k, max );
});