Yii2 Remaining Characters Widget
RemainingCharacters widget is a Yii2 wrapper for the jquery-remaining-characters jQuery plugin Remaining Characters jQuery plugin. This input widget is a replacement for text and textarea inputs. It appends a container with a countdown counter of characters to the input., (*1)
Installation
The preferred way to install this extension is through composer. Check the composer.json for this extension's requirements and dependencies., (*2)
To install, either run, (*3)
$ php composer.phar require jlorente/yii2-widget-remainingcharacters "*"
or add, (*4)
...
    "require": {
        ...
        "jlorente/yii2-widget-remainingcharacters": "*"
    }
to the require section of your composer.json file., (*5)
Usage
use jlorente\remainingcharacters\RemainingCharacters;
// 
echo $form->field($model, 'my-textarea')->widget(RemainingCharacters::classname(), [
    'type' => RemainingCharacters::INPUT_TEXTAREA,
    'text' => Yii::t('app', '{n} characters remaining'),
    'label' => [
        'tag' => 'p',
        'id' => 'my-counter',
        'class' => 'counter',
        'invalidClass' => 'error'
    ],
    'options' => [
        'rows' => '3',
        'class' => 'col-md-12',
        'maxlength' => 200,
        'placeholder' => Yii::t('app', 'Write something')
    ]
]);
Where options array are the options for the textarea., (*6)
Options
| Option | 
Type | 
Default | 
Description | 
| type | 
string | 
RemainingCharacters::INPUT_TEXTAREA | 
Type of the input. Must be RemainingCharacters::INPUT_TEXTAREA or RemainingCharacters::INPUT_TEXT | 
| text | 
string | 
'{n}' | 
Text to display inside the label where {n} is the placeholder of the remaining characters  counter. i.e.: '{n} characters remaining' | 
| label | 
array | 
Options related to the label container | 
| label.tag | 
string | 
'p' | 
Html tag of the label | 
| label.id | 
string | 
null | 
Id of the label | 
| label.class | 
string | 
'char-counter' | 
Class of the label | 
| label.invalidClass | 
string | 
'error' | 
Class to add to the label if the counter reaches an invalid number | 
| options | 
array | 
Options for the input text or textarea. See ActiveField::textarea() or ActiveField::textInput() for more information | 
License
Copyright © 2015 JosĂ© Lorente MartĂn. 
Licensed under the MIT license. See LICENSE.txt for details., (*7)