The following section explains the required steps to build the NumericTextBox component with its basic usage in step by step procedure.
The following list of dependencies are required to use the NumericTextBox component in your application.
|-- @syncfusion/ej2-inputs
|-- @syncfusion/ej2-base
To get you started with the NumericTextBox component, you can clone the Essential JS 2 QuickStart project and install the packages by using the following commands.
git clone https://github.com/syncfusion/ej2-quickstart.git quickstart
cd quickstart
npm install
The project is preconfigured with common settings (
src/styles/styles.css
,system.config.js
) to start with all Essential JS 2 components.
Add the HTML input element for the NumericTextBox into your index.html
.
[src/index.html]
<!DOCTYPE html>
<html lang="en">
<head>
<title>Essential JS 2 NumericTextBox component</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
<meta name="description" content="Essential JS 2" />
<meta name="author" content="Syncfusion" />
<link rel="shortcut icon" href="resources/favicon.ico" />
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<!--style reference from app-->
<link href="/styles/styles.css" rel="stylesheet" />
<!--system js reference and configuration-->
<script src="node_modules/systemjs/dist/system.src.js" type="text/javascript"></script>
<script src="system.config.js" type="text/javascript"></script>
</head>
<body>
<div>
<!--element which is going to render the NumericTextBox -->
<input id="numeric" type="text" />
</div>
</body>
</html>
Now import the NumericTextBox component into your app.ts
and append it to #numeric
[src/app/app.ts]
import { NumericTextBox } from '@syncfusion/ej2-inputs';
// initializes NumericTextBox component
let numeric: NumericTextBox = new NumericTextBox({
// sets value to the NumericTextBox
value: 10
});
// renders initialized NumericTextBox
numeric.appendTo('#numeric');
Now use the npm run start
command to run the application in the browser.
npm run start
The below example shows the NumericTextBox.
import {NumericTextBox} from '@syncfusion/ej2-inputs';
// initializes NumericTextBox component
let numeric: NumericTextBox = new NumericTextBox({
// sets value to the NumericTextBox
value: 10
});
// renders initialized NumericTextBox
numeric.appendTo('#numeric');
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 NumericTextBox</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="TypeScript NumericTextBox Component" />
<meta name="author" content="Syncfusion" />
<link href="styles.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>Loading....</div>
<div id='container'>
<div class='wrap'>
<input id="numeric" type="text" />
</div>
</div>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
.wrap {
margin: 0 auto;
width: 240px;
padding-top:100px;
}
You can set the minimum and maximum range of values in the NumericTextBox using the min
and
max
properties, so the numeric value should be in the min and max range.
The validation behavior depends on the strictMode
property.
The below example demonstrates range validation.
import {NumericTextBox} from '@syncfusion/ej2-inputs';
// strictMode has been enabled by defualt
let numeric: NumericTextBox = new NumericTextBox({
// sets the minimum range value
min: 10,
// sets the maximum range value
max: 20,
// sets value to the NumericTextBox
value: 16,
// sets the step value to increment or decrement value of the NumericTextBox
// based on the step value.
step:2
});
numeric.appendTo('#numeric');
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 NumericTextBox</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="TypeScript NumericTextBox Component" />
<meta name="author" content="Syncfusion" />
<link href="styles.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>Loading....</div>
<div id='container'>
<div class='wrap'>
<input id="numeric" type="text" />
</div>
</div>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
.wrap {
margin: 0 auto;
width: 240px;
padding-top:100px;
}
User can set the format of the NumericTextBox component using format
property. The value will be displayed in the specified format, when the component is in focused out state. For more information about
formatting the value, refer to this link.
The below example demonstrates format the value by using currency format value c2
.
import {NumericTextBox} from '@syncfusion/ej2-inputs';
/* 'c' specifier */
let currency: NumericTextBox = new NumericTextBox({
// sets currency with 2 numbers of decimal places format
format: 'c2',
// sets value to the NumericTextBox
value: 10
});
currency.appendTo('#numeric');
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 NumericTextBox</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="TypeScript NumericTextBox Component" />
<meta name="author" content="Syncfusion" />
<link href="styles.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>Loading....</div>
<div id='container'>
<div class='wrap'>
<input id="numeric" type="text" />
</div>
</div>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
.wrap {
margin: 0 auto;
width: 240px;
padding-top:100px;
}
You can restrict the number of decimals to be entered in the NumericTextBox by using the decimals
and validateDecimalOnType
properties.
So, you can’t enter the number whose precision is greater than the mentioned decimals.
validateDecimalOnType
is false, number of decimals will not be restricted.
Else, number of decimals will be restricted while typing in the NumericTextBox.import {NumericTextBox} from '@syncfusion/ej2-inputs';
let numeric: NumericTextBox = new NumericTextBox({
// restricts number of decimals to be entered in the NumericTextBox
validateDecimalOnType: true,
// sets number of decimal places to be allowed by the NumericTextBox
decimals: 3,
// sets number with 3 numbers of decimal places format
format: 'n3',
value: 10,
placeholder: 'ValidateDecimalOnType enabled',
floatLabelType: 'Auto'
});
numeric.appendTo('#strict');
let numeric: NumericTextBox = new NumericTextBox({
// sets number of decimal places to be allowed by the NumericTextBox
decimals: 3,
// sets number with 3 numbers of decimal places format
format: 'n3',
value: 10,
placeholder: 'ValidateDecimalOnType disabled',
floatLabelType: 'Auto'
});
numeric.appendTo('#allow');
<!DOCTYPE html>
<html lang="en">
<head>
<title>EJ2 NumericTextBox</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="TypeScript NumericTextBox Component" />
<meta name="author" content="Syncfusion" />
<link href="styles.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-base/styles/material.css" rel="stylesheet" />
<link href="//cdn.syncfusion.com/ej2/21.2.3/ej2-inputs/styles/material.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.38/system.js"></script>
<script src="systemjs.config.js"></script>
</head>
<body>
<div id='loader'>Loading....</div>
<div id='container'>
<div class='wrap'>
<input id="strict" type="text" />
</div>
<div class='wrap'>
<input id="allow" type="text" />
</div>
</div>
</body>
</html>
#container {
visibility: hidden;
}
#loader {
color: #008cff;
font-family: 'Helvetica Neue','calibiri';
font-size: 14px;
height: 40px;
left: 45%;
position: absolute;
top: 45%;
width: 30%;
}
.wrap {
margin: 35px auto;
width: 240px;
padding-top: 30px;
}