React Form - Overview - DevExtreme React Example (2024)

Backend API

import React, { useCallback, useState } from 'react';import CheckBox, { CheckBoxTypes } from 'devextreme-react/check-box';import SelectBox, { SelectBoxTypes } from 'devextreme-react/select-box';import NumberBox, { NumberBoxTypes } from 'devextreme-react/number-box';import Form, { FormTypes } from 'devextreme-react/form';import service from './data.ts';const labelModes = ['outside', 'static', 'floating', 'hidden'];const labelLocations = ['left', 'top'];const columnsCount = ['auto', 1, 2, 3];const minColumnWidths = [150, 200, 300];const widthLabel = { 'aria-label': 'Width' };const companyLabel = { 'aria-label': 'Company' };const labelModeLabel = { 'aria-label': 'Label Mode' };const labelLocationLabel = { 'aria-label': 'Label Location' };const columnCountLabel = { 'aria-label': 'Column Count' };const minCountWidthLabel = { 'aria-label': 'Min Count Width' };const App = () => { const companies = service.getCompanies(); const [labelMode, setLabelMode] = useState<FormTypes.Properties['labelMode']>('floating'); const [labelLocation, setLabelLocation] = useState<FormTypes.Properties['labelLocation']>('left'); const [readOnly, setReadOnly] = useState(false); const [showColon, setShowColon] = useState(true); const [minColWidth, setMinColWidth] = useState(300); const [colCount, setColCount] = useState(2); const [company, setCompany] = useState(companies[0]); const [width, setWidth] = useState(); const onCompanyChanged = useCallback((e: SelectBoxTypes.ValueChangedEvent) => { setCompany(e.value); }, [setCompany]); const onLabelModeChanged = useCallback((e: SelectBoxTypes.ValueChangedEvent) => { setLabelMode(e.value); }, [setLabelMode]); const onLabelLocationChanged = useCallback((e: SelectBoxTypes.ValueChangedEvent) => { setLabelLocation(e.value); }, [setLabelLocation]); const onReadOnlyChanged = useCallback((e: CheckBoxTypes.ValueChangedEvent) => { setReadOnly(e.value); }, [setReadOnly]); const onShowColonChanged = useCallback((e: CheckBoxTypes.ValueChangedEvent) => { setShowColon(e.value); }, [setShowColon]); const onMinColWidthChanged = useCallback((e: SelectBoxTypes.ValueChangedEvent) => { setMinColWidth(e.value); }, [setMinColWidth]); const onColumnsCountChanged = useCallback((e: SelectBoxTypes.ValueChangedEvent) => { setColCount(e.value); }, [setColCount]); const onFormWidthChanged = useCallback((e: NumberBoxTypes.ValueChangedEvent) => { setWidth(e.value); }, [setWidth]); const companySelectorLabelMode: SelectBoxTypes.Properties['labelMode'] = labelMode === 'outside' ? 'hidden' : labelMode; return ( <div id="form-demo"> <div className="widget-container"> {labelMode === 'outside' && (<div>Select company:</div>)} <SelectBox displayExpr="Name" dataSource={companies} inputAttr={companyLabel} labelMode={companySelectorLabelMode} label='Select company' value={company} onValueChanged={onCompanyChanged} /> <Form id="form" labelMode={labelMode} formData={company} readOnly={readOnly} showColonAfterLabel={showColon} labelLocation={labelLocation} minColWidth={minColWidth} colCount={colCount} width={width} /> </div> <div className="options"> <div className="caption">Options</div> <div className="option"> <span>Label mode:</span> <SelectBox items={labelModes} inputAttr={labelModeLabel} value={labelMode} onValueChanged={onLabelModeChanged} /> </div> <div className="option"> <span>Label location:</span> <SelectBox items={labelLocations} inputAttr={labelLocationLabel} value={labelLocation} onValueChanged={onLabelLocationChanged} /> </div> <div className="option"> <span>Columns count:</span> <SelectBox items={columnsCount} value={colCount} inputAttr={columnCountLabel} onValueChanged={onColumnsCountChanged} /> </div> <div className="option"> <span>Min column width:</span> <SelectBox items={minColumnWidths} value={minColWidth} inputAttr={minCountWidthLabel} onValueChanged={onMinColWidthChanged} /> </div> <div className="option"> <span>Form width:</span> <NumberBox max={550} value={width} inputAttr={widthLabel} onValueChanged={onFormWidthChanged} /> </div> <div className="option"> <CheckBox text="readOnly" value={readOnly} onValueChanged={onReadOnlyChanged} /> </div> <div className="option"> <CheckBox text="showColonAfterLabel" value={showColon} onValueChanged={onShowColonChanged} /> </div> </div> </div> );};export default App;

import React, { useCallback, useState } from 'react';import CheckBox from 'devextreme-react/check-box';import SelectBox from 'devextreme-react/select-box';import NumberBox from 'devextreme-react/number-box';import Form from 'devextreme-react/form';import service from './data.js';const labelModes = ['outside', 'static', 'floating', 'hidden'];const labelLocations = ['left', 'top'];const columnsCount = ['auto', 1, 2, 3];const minColumnWidths = [150, 200, 300];const widthLabel = { 'aria-label': 'Width' };const companyLabel = { 'aria-label': 'Company' };const labelModeLabel = { 'aria-label': 'Label Mode' };const labelLocationLabel = { 'aria-label': 'Label Location' };const columnCountLabel = { 'aria-label': 'Column Count' };const minCountWidthLabel = { 'aria-label': 'Min Count Width' };const App = () => { const companies = service.getCompanies(); const [labelMode, setLabelMode] = useState('floating'); const [labelLocation, setLabelLocation] = useState('left'); const [readOnly, setReadOnly] = useState(false); const [showColon, setShowColon] = useState(true); const [minColWidth, setMinColWidth] = useState(300); const [colCount, setColCount] = useState(2); const [company, setCompany] = useState(companies[0]); const [width, setWidth] = useState(); const onCompanyChanged = useCallback( (e) => { setCompany(e.value); }, [setCompany], ); const onLabelModeChanged = useCallback( (e) => { setLabelMode(e.value); }, [setLabelMode], ); const onLabelLocationChanged = useCallback( (e) => { setLabelLocation(e.value); }, [setLabelLocation], ); const onReadOnlyChanged = useCallback( (e) => { setReadOnly(e.value); }, [setReadOnly], ); const onShowColonChanged = useCallback( (e) => { setShowColon(e.value); }, [setShowColon], ); const onMinColWidthChanged = useCallback( (e) => { setMinColWidth(e.value); }, [setMinColWidth], ); const onColumnsCountChanged = useCallback( (e) => { setColCount(e.value); }, [setColCount], ); const onFormWidthChanged = useCallback( (e) => { setWidth(e.value); }, [setWidth], ); const companySelectorLabelMode = labelMode === 'outside' ? 'hidden' : labelMode; return ( <div id="form-demo"> <div className="widget-container"> {labelMode === 'outside' && <div>Select company:</div>} <SelectBox displayExpr="Name" dataSource={companies} inputAttr={companyLabel} labelMode={companySelectorLabelMode} label="Select company" value={company} onValueChanged={onCompanyChanged} /> <Form id="form" labelMode={labelMode} formData={company} readOnly={readOnly} showColonAfterLabel={showColon} labelLocation={labelLocation} minColWidth={minColWidth} colCount={colCount} width={width} /> </div> <div className="options"> <div className="caption">Options</div> <div className="option"> <span>Label mode:</span> <SelectBox items={labelModes} inputAttr={labelModeLabel} value={labelMode} onValueChanged={onLabelModeChanged} /> </div> <div className="option"> <span>Label location:</span> <SelectBox items={labelLocations} inputAttr={labelLocationLabel} value={labelLocation} onValueChanged={onLabelLocationChanged} /> </div> <div className="option"> <span>Columns count:</span> <SelectBox items={columnsCount} value={colCount} inputAttr={columnCountLabel} onValueChanged={onColumnsCountChanged} /> </div> <div className="option"> <span>Min column width:</span> <SelectBox items={minColumnWidths} value={minColWidth} inputAttr={minCountWidthLabel} onValueChanged={onMinColWidthChanged} /> </div> <div className="option"> <span>Form width:</span> <NumberBox max={550} value={width} inputAttr={widthLabel} onValueChanged={onFormWidthChanged} /> </div> <div className="option"> <CheckBox text="readOnly" value={readOnly} onValueChanged={onReadOnlyChanged} /> </div> <div className="option"> <CheckBox text="showColonAfterLabel" value={showColon} onValueChanged={onShowColonChanged} /> </div> </div> </div> );};export default App;

import React from 'react';import ReactDOM from 'react-dom';import App from './App.tsx';ReactDOM.render( <App />, document.getElementById('app'),);

const companies = [{ ID: 1, Name: 'Super Mart of the West', Address: '702 SW 8th Street', City: 'Bentonville', State: 'Arkansas', ZipCode: 72716, Phone: '(800) 555-2797', Fax: '(800) 555-2171', Website: '', Active: true,}, { ID: 2, Name: 'Electronics Depot', Address: '2455 Paces Ferry Road NW', City: 'Atlanta', State: 'Georgia', ZipCode: 30339, Phone: '(800) 595-3232', Fax: '(800) 595-3231', Website: '', Active: true,}, { ID: 3, Name: 'K&S Music', Address: '1000 Nicllet Mall', City: 'Minneapolis', State: 'Minnesota', ZipCode: 55403, Phone: '(612) 304-6073', Fax: '(612) 304-6074', Website: '', Active: true,}, { ID: 4, Name: "Tom's Club", Address: '999 Lake Drive', City: 'Issaquah', State: 'Washington', ZipCode: 98027, Phone: '(800) 955-2292', Fax: '(800) 955-2293', Website: '', Active: true,}];export default { getCompanies() { return companies; },};

window.exports = window.exports || {};window.config = { transpiler: 'ts', typescriptOptions: { module: 'system', emitDecoratorMetadata: true, experimentalDecorators: true, jsx: 'react', }, meta: { 'react': { 'esModule': true, }, 'typescript': { 'exports': 'ts', }, 'devextreme/time_zone_utils.js': { 'esModule': true, }, 'devextreme/localization.js': { 'esModule': true, }, 'devextreme/viz/palette.js': { 'esModule': true, }, }, paths: { 'npm:': 'https://unpkg.com/', }, defaultExtension: 'js', map: { 'ts': 'npm:plugin-typescript@4.2.4/lib/plugin.js', 'typescript': 'npm:typescript@4.2.4/lib/typescript.js', 'react': 'npm:react@17.0.2/umd/react.development.js', 'react-dom': 'npm:react-dom@17.0.2/umd/react-dom.development.js', 'prop-types': 'npm:prop-types@15.8.1/prop-types.js', 'rrule': 'npm:rrule@2.6.4/dist/es5/rrule.js', 'luxon': 'npm:luxon@1.28.1/build/global/luxon.min.js', 'es6-object-assign': 'npm:es6-object-assign@1.1.0', 'devextreme': 'npm:devextreme@24.1.4/cjs', 'devextreme-react': 'npm:devextreme-react@24.1.4/cjs', 'jszip': 'npm:jszip@3.10.1/dist/jszip.min.js', 'devextreme-quill': 'npm:devextreme-quill@1.7.1/dist/dx-quill.min.js', 'devexpress-diagram': 'npm:devexpress-diagram@2.2.10/dist/dx-diagram.js', 'devexpress-gantt': 'npm:devexpress-gantt@4.1.56/dist/dx-gantt.js', '@devextreme/runtime': 'npm:@devextreme/runtime@3.0.13', 'inferno': 'npm:inferno@7.4.11/dist/inferno.min.js', 'inferno-compat': 'npm:inferno-compat/dist/inferno-compat.min.js', 'inferno-create-element': 'npm:inferno-create-element@7.4.11/dist/inferno-create-element.min.js', 'inferno-dom': 'npm:inferno-dom/dist/inferno-dom.min.js', 'inferno-hydrate': 'npm:inferno-hydrate@7.4.11/dist/inferno-hydrate.min.js', 'inferno-clone-vnode': 'npm:inferno-clone-vnode/dist/inferno-clone-vnode.min.js', 'inferno-create-class': 'npm:inferno-create-class/dist/inferno-create-class.min.js', 'inferno-extras': 'npm:inferno-extras/dist/inferno-extras.min.js', 'devextreme-cldr-data': 'npm:devextreme-cldr-data@1.0.3', // SystemJS plugins 'plugin-babel': 'npm:systemjs-plugin-babel@0.0.25/plugin-babel.js', 'systemjs-babel-build': 'npm:systemjs-plugin-babel@0.0.25/systemjs-babel-browser.js', // Prettier 'prettier/standalone': 'npm:prettier@2.8.8/standalone.js', 'prettier/parser-html': 'npm:prettier@2.8.8/parser-html.js', }, packages: { 'devextreme': { defaultExtension: 'js', }, 'devextreme-react': { main: 'index.js', }, 'devextreme/events/utils': { main: 'index', }, 'devextreme/localization/messages': { format: 'json', defaultExtension: 'json', }, 'devextreme/events': { main: 'index', }, 'es6-object-assign': { main: './index.js', defaultExtension: 'js', }, }, packageConfigPaths: [ 'npm:@devextreme/*/package.json', 'npm:@devextreme/runtime@3.0.13/inferno/package.json', ], babelOptions: { sourceMaps: false, stage0: true, react: true, },};System.config(window.config);

import React from 'react';import ReactDOM from 'react-dom';import App from './App.js';ReactDOM.render(<App />, document.getElementById('app'));

const companies = [ { ID: 1, Name: 'Super Mart of the West', Address: '702 SW 8th Street', City: 'Bentonville', State: 'Arkansas', ZipCode: 72716, Phone: '(800) 555-2797', Fax: '(800) 555-2171', Website: '', Active: true, }, { ID: 2, Name: 'Electronics Depot', Address: '2455 Paces Ferry Road NW', City: 'Atlanta', State: 'Georgia', ZipCode: 30339, Phone: '(800) 595-3232', Fax: '(800) 595-3231', Website: '', Active: true, }, { ID: 3, Name: 'K&S Music', Address: '1000 Nicllet Mall', City: 'Minneapolis', State: 'Minnesota', ZipCode: 55403, Phone: '(612) 304-6073', Fax: '(612) 304-6074', Website: '', Active: true, }, { ID: 4, Name: "Tom's Club", Address: '999 Lake Drive', City: 'Issaquah', State: 'Washington', ZipCode: 98027, Phone: '(800) 955-2292', Fax: '(800) 955-2293', Website: '', Active: true, },];export default { getCompanies() { return companies; },};

<!DOCTYPE html><html 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" /> <link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/24.1.4/css/dx.light.css" /> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" /> <link rel="stylesheet" type="text/css" href="styles.css" /> <script src="https://unpkg.com/core-js@2.6.12/client/shim.min.js"></script> <script src="https://unpkg.com/systemjs@0.21.3/dist/system.js"></script> <script type="text/javascript" src="config.js"></script> <script type="text/javascript"> System.import("./index.tsx"); </script> </head> <body class="dx-viewport"> <div class="demo-container"> <div id="app"></div> </div> </body></html>

.widget-container { margin-right: 320px; padding: 20px; max-width: 550px; min-width: 300px;}#form { margin-top: 25px;}.options { padding: 20px; position: absolute; bottom: 0; right: 0; width: 260px; top: 0; background-color: rgba(191, 191, 191, 0.15);}.caption { font-size: 18px; font-weight: 500;}.option { margin-top: 10px;}

React Form - Overview - DevExtreme React Example (2024)
Top Articles
Best folding treadmills for home workouts in small spaces
How Fast Can a Treadmill Go?
Tyler Sis 360 Louisiana Mo
Best Pizza Novato
Joi Databas
Pixel Speedrun Unblocked 76
Best Team In 2K23 Myteam
Nyu Paralegal Program
Bellinghamcraigslist
Phenix Food Locker Weekly Ad
Owatc Canvas
123 Movies Black Adam
Amateur Lesbian Spanking
Bernie Platt, former Cherry Hill mayor and funeral home magnate, has died at 90
Walgreens On Nacogdoches And O'connor
Hope Swinimer Net Worth
Scholarships | New Mexico State University
Rosemary Beach, Panama City Beach, FL Real Estate & Homes for Sale | realtor.com®
Belle Delphine Boobs
Grasons Estate Sales Tucson
Uconn Health Outlook
Shiftselect Carolinas
67-72 Chevy Truck Parts Craigslist
Riversweeps Admin Login
All Obituaries | Verkuilen-Van Deurzen Family Funeral Home | Little Chute WI funeral home and cremation
Airtable Concatenate
Nearest Ups Ground Drop Off
San Jac Email Log In
Yu-Gi-Oh Card Database
In hunt for cartel hitmen, Texas Ranger's biggest obstacle may be the border itself (2024)
Lesson 1.1 Practice B Geometry Answers
Rvtrader Com Florida
Forager How-to Get Archaeology Items - Dino Egg, Anchor, Fossil, Frozen Relic, Frozen Squid, Kapala, Lava Eel, and More!
Babbychula
Bismarck Mandan Mugshots
Game8 Silver Wolf
Www Craigslist Com Brooklyn
Gifford Christmas Craft Show 2022
Tryst Houston Tx
Flipper Zero Delivery Time
Gym Assistant Manager Salary
Inducement Small Bribe
LumiSpa iO Activating Cleanser kaufen | 19% Rabatt | NuSkin
UT Announces Physician Assistant Medicine Program
10 Types of Funeral Services, Ceremonies, and Events » US Urns Online
Learn4Good Job Posting
Devotion Showtimes Near Showplace Icon At Valley Fair
2000 Ford F-150 for sale - Scottsdale, AZ - craigslist
Dolce Luna Italian Restaurant & Pizzeria
Strange World Showtimes Near Atlas Cinemas Great Lakes Stadium 16
All Obituaries | Roberts Funeral Home | Logan OH funeral home and cremation
Cbs Scores Mlb
Latest Posts
Article information

Author: Dean Jakubowski Ret

Last Updated:

Views: 5856

Rating: 5 / 5 (50 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Dean Jakubowski Ret

Birthday: 1996-05-10

Address: Apt. 425 4346 Santiago Islands, Shariside, AK 38830-1874

Phone: +96313309894162

Job: Legacy Sales Designer

Hobby: Baseball, Wood carving, Candle making, Jigsaw puzzles, Lacemaking, Parkour, Drawing

Introduction: My name is Dean Jakubowski Ret, I am a enthusiastic, friendly, homely, handsome, zealous, brainy, elegant person who loves writing and wants to share my knowledge and understanding with you.