Angular Validator - CompareRule
A validation rule that demands that a validated editor has a value that is equal to a specified expression.
To specify the expression that the validated field must match, set the rule's comparisonTarget configuration option. Assign a function to this option. The validated value will be compared to the function's return value. The comparison will be performed by using the operator that is set for the comparisonType option.
See Also
comparisonTarget
Specifies the function whose return value is used for comparison with the validated value.
The rule is valid if the validated value is equal to the return value of the comparisonTarget function.
comparisonType
Specifies the operator to be used for comparing the validated value with the target.
Use the ComparisonOperator enum to specify this option when the widget is used as an ASP.NET MVC 5 Control or a DevExtreme-Based ASP.NET Core Control. This enum accepts the following values: Equal, NotEqual, StrictEqual, NotStrictEqual, GreaterThan, GreaterThanOrEqual, LessThan, and LessThanOrEqual.
message
Specifies the message that is shown if the rule is broken.
An error message can be specified as follows:
- Hard-code the message - jQueryindex.js- $(function() { $("#textBox").dxTextBox({ ... }) .dxValidator({ type: "compare", message: "My custom message" }); });- Angularapp.component.htmlapp.module.ts- <dx-text-box> <dx-validator> <dxi-validation-rule type="compare" message="My custom message"> </dxi-validation-rule> </dx-validator> </dx-text-box>- import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxValidatorModule, DxTextBoxModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ DxTextBoxModule, BrowserModule, DxValidatorModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }- VueApp.vue- <template> <DxTextBox> <DxValidator> <DxCompareRule message="My custom message" /> </DxValidator> </DxTextBox> </template> <script> import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { DxTextBox } from 'devextreme-vue/text-box'; import { DxValidator, DxCompareRule } from 'devextreme-vue/validator'; export default { components: { DxTextBox, DxValidator, DxCompareRule } } </script>- ReactApp.js- import React from 'react'; import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { TextBox } from 'devextreme-react/text-box'; import { Validator, CompareRule } from 'devextreme-react/validator'; class App extends React.Component { render() { return ( <TextBox> <Validator> <CompareRule message="My custom message" /> </Validator> </TextBox> ); } } export default App;
- Hide the message - jQueryindex.js- $(function() { $("#textBox").dxTextBox({ ... }) .dxValidator({ type: "compare", message: "" }); });- Angularapp.component.htmlapp.module.ts- <dx-text-box> <dx-validator> <dxi-validation-rule type="compare" message=""> </dxi-validation-rule> </dx-validator> </dx-text-box>- import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxValidatorModule, DxTextBoxModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxValidatorModule, DxTextBoxModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }- VueApp.vue- <template> <DxTextBox> <DxValidator> <DxCompareRule message="" /> </DxValidator> </DxTextBox> </template> <script> import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { DxTextBox } from 'devextreme-vue/text-box'; import { DxValidator, DxCompareRule } from 'devextreme-vue/validator'; export default { components: { DxTextBox, DxValidator, DxCompareRule } } </script>- ReactApp.js- import React from 'react'; import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { TextBox } from 'devextreme-react/text-box'; import { Validator, CompareRule } from 'devextreme-react/validator'; class App extends React.Component { render() { return ( <TextBox> <Validator> <CompareRule message="" /> </Validator> </TextBox> ); } } export default App;
- Display the editor's name in the message - jQueryindex.js- $(function() { $("#textBox").dxTextBox({ ... }) .dxValidator({ name: "Passwords", // The error message will be "Passwords do not match" validationRules: [{ type: "compare" }] }); });- Angularapp.component.htmlapp.module.ts- <dx-text-box> <!-- The error message will be "Passwords do not match" --> <dx-validator name="Passwords"> <dxi-validation-rule type="compare"> </dxi-validation-rule> </dx-validator> </dx-text-box>- import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { DxValidatorModule, DxTextBoxModule } from 'devextreme-angular'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, DxValidatorModule, DxTextBoxModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }- VueApp.vue- <template> <DxTextBox> <!-- The error message will be "Passwords do not match" --> <DxValidator name="Passwords"> <DxCompareRule /> </DxValidator> </DxTextBox> </template> <script> import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { DxTextBox } from 'devextreme-vue/text-box'; import { DxValidator, DxCompareRule } from 'devextreme-vue/validator'; export default { components: { DxValidator, DxCompareRule } } </script>- ReactApp.js- import React from 'react'; import 'devextreme/dist/css/dx.common.css'; import 'devextreme/dist/css/dx.light.css'; import { TextBox } from 'devextreme-react/text-box'; import { Validator, CompareRule } from 'devextreme-react/validator'; class App extends React.Component { render() { return ( <TextBox> {/* The error message will be "Passwords do not match" */} <Validator name="Passwords"> <CompareRule} /> </Validator> </TextBox> ); } } export default App;
reevaluate
Indicates whether or not the rule should be always checked for the target value or only when the target value changes.
type
Specifies the rule type. Set it to "compare" to use the CompareRule.
If you have technical questions, please create a support ticket in the DevExpress Support Center.