DevExtreme v24.1 is now available.

Explore our newest features/capabilities and share your thoughts with us.

Your search did not match any results.

Text Box

The TextBox is a UI component that allows users to enter and edit a single line of text.

DevExtreme Accessibility Compliance
DevExtreme component libraries meet a variety of WCAG and Section 508 compliance standards. To assess this demo’s accessibility level, click the Run AXE® Validation button to launch the AXE® web accessibility evaluation tool.
All trademarks or registered trademarks are property of their respective owners. AXE® Terms of Use
The overall accessibility level of your application depends on the TextBox features used.
Backend API
$(() => { $('#simple').dxTextBox({ value: 'John Smith', inputAttr: { 'aria-label': 'Name' }, }); $('#placeholder').dxTextBox({ placeholder: 'Enter full name here...', inputAttr: { 'aria-label': 'Full Name' }, }); $('#clear-button').dxTextBox({ value: 'John Smith', showClearButton: true, inputAttr: { 'aria-label': 'Full Name' }, }); $('#password').dxTextBox({ mode: 'password', placeholder: 'Enter password', showClearButton: true, value: 'f5lzKs0T', inputAttr: { 'aria-label': 'Password' }, }); $('#mask').dxTextBox({ mask: '+1 (X00) 000-0000', maskRules: { X: /[02-9]/ }, inputAttr: { 'aria-label': 'Mask' }, }); $('#disabled').dxTextBox({ value: 'John Smith', disabled: true, inputAttr: { 'aria-label': 'Full Name' }, }); $('#full-name').dxTextBox({ value: 'Smith', showClearButton: true, placeholder: 'Enter full name', inputAttr: { 'aria-label': 'Full Name' }, valueChangeEvent: 'keyup', onValueChanged(data) { emailEditor.option('value', `${data.value.replace(/\s/g, '').toLowerCase()}`); }, }); const emailEditor = $('#email').dxTextBox({ value: '', readOnly: true, inputAttr: { 'aria-label': 'Email' }, hoverStateEnabled: false, }).dxTextBox('instance'); });
<!DOCTYPE html> <html xmlns="" lang="en"> <head> <title>DevExtreme Demo</title> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0" /> <script src=""></script> <script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script> <link rel="stylesheet" type="text/css" href="" /> <script src="js/dx.all.js"></script> <script src="index.js"></script> <link rel="stylesheet" type="text/css" href="styles.css" /> </head> <body class="dx-viewport"> <div class="demo-container"> <div class="form"> <div class="dx-fieldset"> <div class="dx-field"> <div class="dx-field-label">Default mode</div> <div class="dx-field-value"> <div id="simple"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">With placeholder</div> <div class="dx-field-value"> <div id="placeholder"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">With clear button</div> <div class="dx-field-value"> <div id="clear-button"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">Password mode</div> <div class="dx-field-value"> <div id="password"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">Text mask</div> <div class="dx-field-value"> <div id="mask"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">Disabled</div> <div class="dx-field-value"> <div id="disabled"></div> </div> </div> </div> <div class="dx-fieldset"> <div class="dx-fieldset-header">Events and API</div> <div class="dx-field"> <div class="dx-field-label">Full Name</div> <div class="dx-field-value"> <div id="full-name"></div> </div> </div> <div class="dx-field"> <div class="dx-field-label">Email (read only)</div> <div class="dx-field-value"> <div id="email"></div> </div> </div> </div> </div> </div> </body> </html>

This demo illustrates the following TextBox properties:

  • value
    A value the TextBox displays.

  • placeholder
    An input prompt the TextBox displays when the value is not defined.

  • showClearButton
    Specifies whether to display the button that clears the TextBox value.

  • mode
    Affects a set of keyboard characters displayed on a mobile device when the TextBox gets focus and modifies the component's display style. In this example, the mode is set to "password" so that entered characters are obscured, and the password cannot be read.

  • mask
    An input mask.

  • maskRules
    Custom mask rules.

  • disabled
    Specifies whether the TextBox responds to user interaction.

  • onValueChanged event handler
    Use this function to perform an action when a user enters a new value. In this demo, this function uses the entered value to construct a dummy email address and assign it to another TextBox.

  • valueChangeEvent
    One or several DOM events that trigger the onValueChanged event handler.

  • readOnly
    Prevents users from changing the editor's value.

  • hoverStateEnabled
    Specifies whether the TextBox responds when users long press or hover the mouse pointer over it.