JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/2.1.0/knockout-min.js"></script>
<textarea data-bind="value: comment, valueUpdate: 'afterkeydown', disable: count() <= 0"></textarea>

<br/><br/>
<span data-bind="text: count"></span> characters

JavaScript

var viewModel = function(){
    var self = this;
    
    self.comment = ko.observable("");
    self.count = ko.computed(function(){
        var countNum = 20 - self.comment().length;
        return countNum;
    });
}
    
    
var vm = new viewModel();
ko.applyBindings(vm);