当前位置: 首页 > article >正文

HOW - Form 表单 label 和 wrapper 对齐场景

一、背景

在日常使用 表单 时,我们一般有如下布局:

请添加图片描述

可以通过 Form 表单提供的配置直接设置:

<Form
      form={form}
      labelCol={{ span: 4 }}
      wrapperCol={{ span: 20 }}
      onFinish={handleSubmit}
    >
      <Form.Item
        label="输入框"
        name="input"
        rules={[{ required: true, message: "请输入内容" }]}
      >
        <Input placeholder="请输入内容" />
      </Form.Item>
</Form>

那对于有额外提示或组件需要在表单组件下方展示呢,如下图:

请添加图片描述

二、具体方案

1. form item 只设置 label 属性(更推荐)

Antd form - 复杂一点的控件

注意,在 label 对应的 Form.Item 上不要在指定 name 属性,这个 Item 只作为布局作用。

2. 结合 row 和 col

import React from "react";
import { Form, Input, Table, Row, Col, Button } from "antd";

const FormWithTableExample = () => {
  const [form] = Form.useForm();

  const columns = [
    {
      title: "列 1",
      dataIndex: "col1",
      key: "col1",
    },
    {
      title: "列 2",
      dataIndex: "col2",
      key: "col2",
    },
  ];

  const data = [
    { key: "1", col1: "数据 1", col2: "数据 2" },
    { key: "2", col1: "数据 3", col2: "数据 4" },
  ];

  const handleSubmit = () => {
    form.validateFields().then((values) => {
      console.log("提交成功:", values);
    });
  };

  return (
    <Form
      form={form}
      labelCol={{ span: 4 }}
      wrapperCol={{ span: 20 }}
      onFinish={handleSubmit}
    >
      {/* 第一行:表单项 */}
      <Form.Item
        label="输入框"
        name="input"
        rules={[{ required: true, message: "请输入内容" }]}
      >
        <Input placeholder="请输入内容" />
      </Form.Item>

      {/* 第二行:非表单内容 */}
      <Row style={{ marginBottom: "16px" }}>
        <Col span={4} style={{ textAlign: "right", paddingRight: "8px" }}>
          <label>数据表格:</label>
        </Col>
        <Col span={20}>
          <Table
            columns={columns}
            dataSource={data}
            pagination={false}
            bordered
          />
        </Col>
      </Row>

      {/* 提交按钮 */}
      <Form.Item wrapperCol={{ offset: 4, span: 20 }}>
        <Button type="primary" htmlType="submit">
          提交
        </Button>
      </Form.Item>
    </Form>
  );
};

export default FormWithTableExample;


http://www.kler.cn/a/488808.html

相关文章:

  • python学opencv|读取图像(三十一)缩放图像的三种方法
  • Postman接口测试05|实战项目笔记
  • 汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)
  • 多目标优化算法之一:基于分解的方法
  • Linux 系统下磁盘相关指令:df、du、fdisk、lsblk
  • Nginx入门笔记
  • 统信桌面常用运维命令
  • 【华为OD-E卷 - 服务失效判断 100分(python、java、c++、js、c)】
  • LeetCode 747. 至少是其他数字两倍的最大数
  • C++—14、C++ 中的指针最基础的原理
  • React 元素渲染
  • 苍穹外卖的微信支付和接单和催单提醒
  • 青少年编程与数学 02-006 前端开发框架VUE 16课题、组件基础
  • 初学stm32 --- ADC多通道采集
  • 鸿蒙原生应用如何才能拉起系统浏览器?
  • Linux 命令与日志查看实用指南
  • 详解Sonar与Jenkins 的集成使用!
  • 【C++】Muduo库
  • vivado 时钟指南
  • .gitignore记录
  • 前端全局水印, 拖拉拽图片 ,拽入等比压缩,上传服务器后,java 转base64 加水印,然后前端http预览,确认保存,拽出删除。
  • VS Code 可视化查看 C 调用链插件 C Relation
  • 腾讯云AI代码助手编程挑战赛-知识百科AI
  • Unity3D Huatuo热更环境安装与示例项目详解
  • MYSQL------MySQL 复制MySQL Cluster 架构
  • Xsens惯性动捕技术优化人型机器人AI训练流程