JSFiddle - React, Tailwind, and code Playground

by rich_harris

HTML

<p>Rather than use two-way binding, this example listens for events that could change the input value - e.g. <code>keydown</code>, <code>input</code>, <code>change</code> - and sets the value manually.</p>
<hr/>

<main></main>

<script id='template' type='text/ractive'>
    <input type="password" on-keydown-input-change='set("password",event.node.value)'/>
    <button type="button" on-click="connect" disabled="{{!validPassword}}">connect</button>
    
    <p>password: {{password}}</p>
    <p>disabled: {{!validPassword}}</p>
</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;
}

JavaScript

var ractive = new Ractive({
    el: 'main',
    template: '#template',
    data: {
        name: 'world', version: Ractive.VERSION
    },
    computed : {
        validPassword : function() {
            return this.get("password").trim().length > 0; 
        }
    }
});