Properties

NameTypeDefault
arrow boolean true

Sets or gets whether the arrow of the hints will be shown.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} arrow={false}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
animation ValidatorAnimation 'fade'
ValidatorAnimation: "fade" | "none"

Sets or gets the animation of showing, hiding the hints.

Possible Values:
'fade'
'none'
/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} animation={'none'}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
animationDuration number 150

Sets or gets the duration of the animation used for showing/hiding the hints.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} animationDuration={3000}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
closeOnClick boolean true

Sets or gets whether the hints will be closed when the user click on them.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} closeOnClick={false}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
focus boolean true

Sets or gets whether the jqxValidator will focus the first invalid input.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} focus={false}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
hintType ValidatorHintType "tooltip"
ValidatorHintType: "tooltip" | "label"

Sets or gets the hint type. Possible values: 'tooltip' and 'label'.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} hintType={'label'}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
onError () => void null

Sets or gets callback which will be called on validation error.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
onError: (): any => {
alert('You have not filled the form correctly!');
},
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} onError={this.state.onError}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
onSuccess () => void null

Sets or gets the callback which will be executed on success.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
onSuccess: (): any => {
alert('You have filled the form correctly!');
},
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} onSuccess={this.state.onSuccess}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
position string 'right'

Sets or gets the default position of the hints.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} position={'left'}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
rules Array<ValidatorRule> []
Interface ValidatorRule {
  input?: string;
  message?: string;
  action?: string;
  rule?: string | any;
  position?: string;
  hintRender?: any;
}

Sets jqxValidator rules. Format of a single rule is as follows:


{ input: 'selector-of-the-input', 
    message: 'Custom message on error', 
    action: 'Custom action (keyup, change...etc)', 
    rule: 'Build rule (ssn, phone, email...) or custom function', 
    position: 'Position of the hint (format pos:x,y)', 
    hintRender: 'Function for hint rendering' }
                                

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
rtl boolean false

Sets or gets a value indicating whether the validation messages are displayed from the left side instead of the right.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules} rtl={true}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

Events

validationError Event

This is triggered when the form is validated with some errors.

Code examples

Bind to the validationError event of jqxValidator.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator} onValidationError={this.onValidationError}
rules={this.state.rules}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
private onValidationError(e: Event): void {
alert('do something...');
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

validationSuccess Event

This is triggered when the form is validated whithout any errors.

Code examples

Bind to the validationSuccess event of jqxValidator.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public render() {
return (
<JqxValidator ref={this.myValidator} onValidationSuccess={this.onValidationSuccess}
rules={this.state.rules}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
private onValidationSuccess(e: Event): void {
alert('do something...');
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);

Methods

NameArgumentsReturn Type
hideHint id

Hide all hints for a specific input.

hide None

Hiding all hints for the current form.

updatePosition None

Updating the positions of all hints. This is useful for example on window resize.

validate htmlElement

Validating the whole form.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public componentDidMount(): void {
this.myValidator.current!.validate();
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);
validateInput id

Validates a single input. This method accepts a single parameter which is selector of the input you want to validate. Notice that this selector should be the same like the one you've passed in the rules array.

/* tslint:disable */
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import 'jqwidgets-scripts/jqwidgets/styles/jqx.base.css';
import JqxValidator, { IValidatorProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxvalidator';
import JqxButton, { IButtonProps } from 'jqwidgets-scripts/jqwidgets-react-tsx/jqxbuttons';
class App extends React.PureComponent<{}, IValidatorProps> {
private myValidator = React.createRef<JqxValidator>();
constructor(props: {}) {
super(props);
this.state = {
rules: [{ input: '#userInput', message: 'Username is required!', action: 'blur', rule: 'required' },
{ input: '#emailInput', message: 'Invalid e-mail!', action: 'blur', rule: 'email' },
{ input: '#emailInput', message: 'Email is required!', action: 'blur', rule: 'required' }]
}
}
public componentDidMount(): void {
this.myValidator.current!.validateInput('#userInput');
}
public render() {
return (
<JqxValidator ref={this.myValidator}
rules={this.state.rules}>
<form id='testForm' action='./'>
<table class='register-table'>
<tr>
<td>Username:</td>
<td>
<input type='text' id='userInput' class='text-input' />
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input type='text' id='emailInput' class='text-input' />
</td>
</tr>
</table>
</form>
<jqxButton @click='submit()' :width='50'>Submit</jqxButton>
</JqxValidator>
);
}
private submit() {
this.myValidator.current!.validate();
}
}
ReactDOM.render(<App />, document.querySelector('#app') as HTMLElement);