This is a beta release of documentation for Magento 2.4, published for previewing soon-to-be-released functionality. Content in this version is subject to change. Links to the v2.4 code base may not properly resolve until the code is officially released.

RemainingCharacters widget

The RemainingCharacters widget allows you to display the remaining characters count for a text field.

The RemainingCharacters widget can be used only in the frontend area.

The RemainingCharacters widget source is <Magento_Catalog_module_dir>/view/frontend/web/js/product/remaining-characters.js.

Initialize the RemainingCharacters widget

For information about how to initialize a widget in a JS component or .phtml template, see the Initialize JavaScript topic.

The RemainingCharacters widget is instantiated with:

1
2
3
4
5
$("#remaining-characters").remainingCharacters({
    maxLength: 5,
    noteSelector: '.note',
    counterSelector: '.note .character-counter'
});``

Where:

  • #remaining-characters is the selector of the element which will display RemainingCharacters.

The following example shows a PHTML file using the script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
    require([
        'jquery',
        'Magento_Catalog/js/product/remaining-characters'
    ], function ($) {
        'use strict';

        $("#remaining-characters").remainingCharacters({
            maxLength: 5,
            noteSelector: '.note',
            counterSelector: '.note .character-counter'
        });
    });
</script>

Options

counterSelector

The selector of counter element.

Type: String

Default value: undefined

errorClass

The error class that appends to the note element if the maxLength is exceeded.

Type: String

Default value: 'mage-error'

maxLength

The maximum length of the text for the field.

Type: Integer

Default value: undefined

noDisplayClass

The class that appends to the counter element if the field value is empty.

Type: String

Default value: 'no-display'

noteSelector

The selector of note element. The note element contains the counter element and the error class is added to the note element when the maxLength is exceeded.

Type: String

Default value: undefined

remainingText

The text that shows in the counter element if the maxLength is not exceeded.

Type: String

Default value: $t('remaining')

tooManyText

The text that shows in the counter element if the maxLength is exceeded.

Type: String

Default value: $t('too many')

Code sample

This example shows the text field with the note that shows you a message about the remaining characters.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<input id="remaining-characters" type="text"/>
<p class="note">
    <span class="character-counter"></span>
</p>
<script>
    require([
        "jquery",
        "Magento_Catalog/js/product/remaining-characters"
    ], function ($) {
        'use strict';

        $('#remaining-characters').remainingCharacters({
            maxLength: 5,
            noteSelector: '.note',
            counterSelector: '.note .character-counter'
        });
    });
</script>

Result

RemainingCharacters widget example with not exceeded text length RemainingCharacters widget example with exceeded text length