diff --git a/docs/demo/value-form-event.md b/docs/demo/value-form-event.md new file mode 100644 index 000000000..d8b00535a --- /dev/null +++ b/docs/demo/value-form-event.md @@ -0,0 +1,4 @@ +## ValueFromEvent + + + diff --git a/docs/examples/value-form-event.tsx b/docs/examples/value-form-event.tsx new file mode 100644 index 000000000..5cde5167a --- /dev/null +++ b/docs/examples/value-form-event.tsx @@ -0,0 +1,197 @@ +import Form, { Field } from 'rc-field-form'; +import React from 'react'; +import Input from './components/Input'; + +const Divider = (props: React.PropsWithChildren) => ( +
+ 🔽🔽🔽 + {props.children} + 🔽🔽🔽 +
+) + +interface CustomValue { + timestamp: number, + date: Date, + formatted: string, +} + +type FormData = { + // Input + text?: string; // default + + // ========== 🔽 event.target.checked + checkbox?: boolean; + radio?: boolean; + // ========== 🔽 event.target.valueAsNumber + number?: number; + range?: number; + // ========== 🔽 event.target.files + file?: FileList; + + // ========== 🔽 event.target.value(default)!!! + password?: string; + search?: string; + email?: string; + url?: string; + tel?: string; + date?: number; + time?: string; + dateTimeLocal?: string; + week?: string; + month?: string; + color?: string; + + // Select + select?: string; + // Textarea + textarea?: string; + + // Custom + custom?: CustomValue; +}; + + +function App() { + const [form] = Form.useForm(); + + const initialValues: FormData = { + url: 'https://github.com/react-component/field-form', + email: 'wxh16144@users.noreply.github.com', + } + + return ( +
{ + console.log('Finish:', values); + }} + onFieldsChange={fields => { + console.error('fields:', fields); + }} + > + name="text"> + + + + + event.target.checked + + name="checkbox"> + + + + name="radio"> + + + + event.target.valueAsNumber + + name="number"> + + + + name="range"> + + + + event.target.files + + name="file"> + + + + event.target.value default!!! + + name="password"> + + + + name="search"> + + + + name="email"> + + + + name="url"> + + + + name="tel"> + + + + name="date"> + + + + name="dateTimeLocal"> + + + + name="time"> + + + + name="week"> + + + + name="month"> + + + + name="color"> + + + + {/* Select */} + name="select"> + + + +
+ + {/* Textarea */} + name="textarea"> +