mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-15 08:59:15 +08:00
9965d96259
* feat(form): improve scrollToField logic * docs: update form faq * test: add unit test * fix: boundary error * style: update code ref: https://github.com/ant-design/ant-design/pull/48211#discussion_r1547535631 ref: https://github.com/ant-design/ant-design/pull/48211#issuecomment-2031635922 * docs: add scrolltofield demo * chore: update snapshot * Update components/form/demo/validate-scroll2field.md Co-authored-by: afc163 <afc163@gmail.com> Signed-off-by: 红 <wxh16144@qq.com> * chore: update demo * chore: update logic * chore: update snapshot * Update components/form/demo/validate-scroll-to-field.tsx Co-authored-by: lijianan <574980606@qq.com> Signed-off-by: 红 <wxh16144@qq.com> * chore: update demo * chore: update snap * chore: update * chore: update demo * chore: update * chore: update docs * chore: update * chore: update snap * Update components/form/demo/validate-scroll-to-field.tsx Co-authored-by: crazyair <crazyair@users.noreply.github.com> Signed-off-by: 红 <wxh16144@qq.com> * chore:update logic * test: add unit test ref: https://github.com/ant-design/ant-design/issues/28869 * chore: update demo * test: update snap * chore: update demo * chore: update * chore: update * chore: fix TS type * chore: update demo fix layout * chore: update demo --------- Signed-off-by: 红 <wxh16144@qq.com> Co-authored-by: afc163 <afc163@gmail.com> Co-authored-by: lijianan <574980606@qq.com>
56 lines
1.4 KiB
TypeScript
56 lines
1.4 KiB
TypeScript
import React from 'react';
|
|
import { Button, Flex, Form, Input, Select } from 'antd';
|
|
|
|
const App = () => {
|
|
const [form] = Form.useForm();
|
|
|
|
return (
|
|
<Form
|
|
form={form}
|
|
scrollToFirstError
|
|
style={{ paddingBlock: 32 }}
|
|
labelCol={{ span: 6 }}
|
|
wrapperCol={{ span: 14 }}
|
|
>
|
|
<Form.Item wrapperCol={{ offset: 6 }}>
|
|
<Button onClick={() => form.scrollToField('bio')}>Scroll to Bio</Button>
|
|
</Form.Item>
|
|
|
|
<Form.Item name="username" label="UserName" rules={[{ required: true }]}>
|
|
<Input />
|
|
</Form.Item>
|
|
|
|
<Form.Item label="Occupation" name="occupation">
|
|
<Select
|
|
options={[
|
|
{ label: 'Designer', value: 'designer' },
|
|
{ label: 'Developer', value: 'developer' },
|
|
{ label: 'Product Manager', value: 'product-manager' },
|
|
]}
|
|
/>
|
|
</Form.Item>
|
|
|
|
<Form.Item name="motto" label="Motto">
|
|
<Input.TextArea rows={4} />
|
|
</Form.Item>
|
|
|
|
<Form.Item name="bio" label="Bio" rules={[{ required: true }]}>
|
|
<Input.TextArea rows={6} />
|
|
</Form.Item>
|
|
|
|
<Form.Item wrapperCol={{ offset: 6 }}>
|
|
<Flex gap="small">
|
|
<Button type="primary" htmlType="submit">
|
|
Submit
|
|
</Button>
|
|
<Button danger onClick={() => form.resetFields()}>
|
|
Reset
|
|
</Button>
|
|
</Flex>
|
|
</Form.Item>
|
|
</Form>
|
|
);
|
|
};
|
|
|
|
export default App;
|