This repository was archived by the owner on Jul 30, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathrange-validation.tsx
More file actions
118 lines (112 loc) · 5.35 KB
/
range-validation.tsx
File metadata and controls
118 lines (112 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/**
* Min-Max Range NumericTextBox sample
*/
import * as ReactDOM from 'react-dom';
import * as React from 'react';
import { NumericTextBoxComponent } from '@syncfusion/ej2-react-inputs';
import { SampleBase } from '../common/sample-base';
import { PropertyPane } from '../common/property-pane';
import './sample.css';
export class Range extends SampleBase<{}, {}> {
render() {
return (
<div className='control-pane'>
<div className='control-section'>
<div className=' col-lg-8'>
<div className="content-wrapper format-wrapper sample-numeric">
<div className="control-label">Numeric TextBox
</div>
{/* Render numeric textbox with restriction in entering values */}
<NumericTextBoxComponent min={10} max={100} value={15} ref={numeric => this.numericInstance = numeric} >
</NumericTextBoxComponent>
</div>
</div>
<div className='col-lg-4 property-section'>
<PropertyPane title='Properties'>
<table id="property" title="Properties" className='property-panel-table' style={{ width: '100%' }}>
<tr>
<td style={{ width: '30%' }}>
<div>Min Value </div>
</td>
<td style={{ width: '70%', paddingRight: '10px' }}>
<div>
<input id="min" type="number" inputMode="numeric" className="form-control" />
</div>
</td>
</tr>
<tr>
<td style={{ width: '30%' }}>
<div>Max Value </div>
</td>
<td style={{ width: '70%', paddingRight: '10px' }}>
<div>
<input id="max" type="number" inputMode="numeric" className="form-control" />
</div>
</td>
</tr>
<tr>
<td style={{ width: '30%' }}>
<div>Increment Step </div>
</td>
<td style={{ width: '70%', paddingRight: '10px' }}>
<div>
<input id="step" type="number" inputMode="numeric" max={100} min={0} className="form-control" />
</div>
</td>
</tr>
<tr>
<td></td>
<td>
<div>
<button id="buttonApply" className="e-btn-small btn btn-primary" style={{ marginBottom: '10px' }} onClick={this.applyRange.bind(this)}>Apply</button>
</div>
</td>
</tr>
</table>
</PropertyPane>
</div>
</div>
<div id="action-description">
<p>This sample demonstrates the range validation functionalities of the Numeric TextBox. Change the min, max and step values and click on apply button to change the property values in Numeric TextBox.</p>
</div>
<div id="description">
<p>
The NumericTextBox has the options to restrict the input value between a specific range using the <a href="http://ej2.syncfusion.com/react/documentation/numerictextbox/api-numericTextBoxComponent.html#min-number" target="_blank">min</a>, <a href="http://ej2.syncfusion.com/react/documentation/numerictextbox/api-numericTextBoxComponent.html#max-number" target="_blank">max</a>, and <a href="http://ej2.syncfusion.com/react/documentation/numerictextbox/api-numericTextBoxComponent.html#strictmode-boolean" target="_blank">strictMode</a> properties.
</p>
<ul>
<li>
When you enable the <b>strictMode</b> property, the value will automatically change within a range on passing
the out-of-range values.
</li>
<li>
When you disable the <b>strictMode</b> property, the NumericTextBox component allows the out-of-range value with the highlighted
textbox to indicate the given value is wrong.
</li>
</ul>
<p>
In this demo, numeric textbox is restricted between 10 to 100 through the min and max properties. So you can enter only the value between
this range.
</p>
<p>
More information on the range validation configuration can be found in the <a href="http://ej2.syncfusion.com/react/documentation/numerictextbox/getting-started.html#range-validation" target="_blank">documentation section</a>.
</p>
</div>
</div >
)
}
private numericInstance: NumericTextBoxComponent;
public rendereComplete(): void {
/**custom render complete function */
(document.getElementById('min') as HTMLInputElement).value = '10';
(document.getElementById('max') as HTMLInputElement).value = '100';
(document.getElementById('step') as HTMLInputElement).value = '1';
}
public applyRange(): void {
let min: number = parseFloat((document.getElementById('min') as HTMLInputElement).value);
let max: number = parseFloat((document.getElementById('max') as HTMLInputElement).value);
let step: number = parseFloat((document.getElementById('step') as HTMLInputElement).value);
this.numericInstance.min = min;
this.numericInstance.max = max;
this.numericInstance.step = step;
}
}