如何在 Material UI 中布局表单?

2024-02-14

我正在尝试使用 MaterialUI Grid 组件和字段构建以下表单布局:

+-----------------------------------------+
|Form                                     |
|                                         |
| +--------------+ +----------------+     |
| |Field_1       | |Field_2         |     |
| +--------------+ +----------------+     |
| +--------------+ +---------+ +--------+ |
| |TextArea      | |Popup_A1 | |Popup_A2| |
| |              | +---------+ +--------+ |
| |              | +---------+ +--------+ |
| |              | |Popup_B1 | |Popup_B2| |
| |              | +---------+ +--------+ |
| |              | +---------+ +--------+ |
| |              | |Popup_C1 | |Popup_C2| |
| |              | +---------+ +--------+ |
| |              |                        |
| +--------------+                        |
+-----------------------------------------+

我的理解可能有点奇怪,弹出窗口显示为最小的正方形。页面结构如下(简化):

<Form>
  <Grid container direction="row" justify="flex-start" alignItems="flex-start" spacing={1}>
    <Grid container xs="12" spacing="1">
      <Grid item xs={12} sm={6}>
        <Field name="Field1" ... fullWidth />
      </Grid>
      <Grid item xs={12} sm={6}>
        <Field name="Field2" ... fullWidth />
      </Grid>
    </Grid>
    <Grid container xs={12} >
      <Grid container xs={4} sm={4} >
        <Field  fullWidth multiline component={TextField} />
      </Grid>

      <Grid container xs={8} sm={8}>
        <Grid container >
          <Grid item>
            <TextField name="Popup_A1" fullWidth select>
              <MenuItem key="1" value="1">
                Large Text
              </MenuItem>
              <MenuItem key="2" value="2">
                Ooh Some Large Text
              </MenuItem>
              <MenuItem key="3" value="3">
                Another Large Text Choice
              </MenuItem>
              <MenuItem key="4" value="4">
                No, LOOOONG Text
              </MenuItem>
            </TextField>
          </Grid>
          <Grid item>
            <TextField name="Popup_A2" fullWidth select>
              <MenuItem key="1" value="1">
                Large Text
              </MenuItem>
              <MenuItem key="2" value="2">
                Ooh Some Large Text
              </MenuItem>
              <MenuItem key="3" value="3">
                Another Large Text Choice
              </MenuItem>
              <MenuItem key="4" value="4">
                No, LOOOONG Text
              </MenuItem>
            </TextField>
          </Grid>
        </Grid>
      </Grid>

      <Grid container xs={8} sm={8}>
        <Grid container >
          <Grid item>
            <Field name="Popup_B1" ... fullWidth select >....</Field>
          </Grid>
          <Grid item>
            <Field name="Popup_B2" ... fullWidth select >....</Field>
          </Grid>
        </Grid>
      </Grid>

      ...

    </Grid>
 </Grid>
</Form>

有人可以让我摆脱痛苦,让我知道我做错了什么,或者可能为我指出构建这样的表单的资源吗?


Edit

我已经添加在MenuItemVenkovsky 的代码沙箱非常有用的元素......它准确地说明了我的意思。弹出窗口非常非常狭窄。 :-(


以防万一其他人遇到类似的问题,这里是有效代码的基础知识。我认为问题在于将字段包装在<Grid item sm={6}>'s:

<Form>
  <Grid container direction="row" justify="flex-start" alignItems="flex-start" spacing={1}>
    <Grid container spacing={1}>
      <Grid item sm={6}>
        <Field name="requestor" ... />
      </Grid>
      <Grid item sm={6}>
        <Field name="status" .../>
      </Grid>
    </Grid>
    <Grid container >
      <Grid item sm={3}>
        <Field name="materials" type="text" label="Materials" variant="outlined" rowsMax={10} rows={20} margin="normal" fullWidth multiline  ... />
      </Grid>
      <Grid item sm={1}>
      </Grid>
      <Grid item sm={8}>
        <Grid container spacing={1}>
          <Grid item sm={6}>
            <TextField name="reviewer_2" ... />
          </Grid>
          <Grid item sm={6}>
            <TextField name="approver_1" ... />
          </Grid>
        </Grid>
        <Grid container spacing={1}>
          <Grid item sm={6}>
            <TextField name="reviewer_2" ... />
          </Grid>
          <Grid item sm={6}>
          <TextField name="approver_2" ... />
          </Grid>
        </Grid>
        <Grid container spacing={1}>
          <Grid item sm={6}>
            <TextField name="reviewer_3" ... />
          </Grid>
          <Grid item sm={6}>
            <TextField name="approver_3" ... />
          </Grid>
        </Grid>
      </Grid>
    </Grid>
    <Button type="submit" > Submit </Button>
  </Grid>
</Form>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Material UI 中布局表单? 的相关文章

  • Javascript 根据选择选项更改

    内容

    Javascript 不是最好的 所以我想问一下我哪里出了问题 正如标题所示 我有一个带有 4 个不同选项的选择框 当选择一个选项时我想更改 p 带有priceesc id 的标签 这是我到目前为止所拥有的 function priceTe
  • React-redux useDispatch() 未捕获类型错误

    我正在尝试创建一个简单的组件来使用 React Redux 钩子分派操作useDispatch 我收到一个错误 我已将组件修剪到发生错误的位置 当调用 useDispatch 函数时会发生这种情况 import useDispatch fr
  • 仅显示某些路由的组件 - React

    我正在 React 中开发一个带有登录界面的网站 该网站显示一个自定义导航组件 但是我不希望它显示在主路线 即登录页面 上 但据我了解 静态组件不会在路线更改时重新呈现 这准确吗 我正在使用 React Router 来处理所有路由 这是我
  • Yii2:对 ajax 提交的表单进行 ajax 表单验证

    我想知道是否有 Yii2 专家可以帮助我了解如何最好地结合使用 ajax 表单和 Yii ajax 验证 我想我可以解释这个问题 而无需向您介绍我的所有代码 我正在制作一个促销代码输入表单 用户在表单中输入促销代码 该表单通过 ajax 提
  • 在vscode中使用reactjs报错

    在 Visual Studio 代码中使用 jsx 语法 Visual Studio代码报错 请帮我 谢谢 符号 例如 而不是这样做 return lt button className square gt TODO lt button g
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • 如何在 React js 上使用历史记录重定向到另一个页面?

    我在前端使用 Reactjs 并在后端使用 Laravel 开发了一个注册页面 我希望当我单击注册按钮时 它将被重定向到我的登录页面 我的注册组件是 handleSubmit event gt event preventDefault co
  • PHP 邮件结果错误:“标头丢失”

    我已经使用 php 邮件表单有一段时间了 现在它无法在新网站上运行 出现以下错误结果 PHP 警告 mail function mail sendmail from 未在 php ini 中设置 或第 16 行 E home mypagef
  • JSX 支持哪些 ES6 功能?

    我在用着与 JSX 进行反应 with 反应工具 https www npmjs com package react tools将 JSX 代码编译为 JavaScript JSX 支持哪些 ES6 功能harmony选项已启用 感谢康加克
  • × TypeError:无法读取未定义的属性(读取“map”)

    当我尝试运行此代码时 它给出了此错误 TypeError 无法读取未定义的属性 读取 map 为什么会发生这种情况 我怎样才能让它发挥作用 import React from react import Grid from material
  • 表单输入框不显示

    我正在尝试使用 Django 显示一个简单的表单输入文本框 我正在亚马逊 AWS 上部署 该网站在不同的服务器 pythonanywhere 上运行良好 但在 AWS 上存在主要问题 具体来说 输入框没有被显示 我使用的模板如下 首页 ht
  • 内容丰富的 api markdown 转换为 HTML

    有没有什么简单的方法可以将 Markdown 文本从 Contentful api 转换为 html 代码以显示在 html 页面上 我尝试过使用 pagedown 和一些类似的技术 但似乎没有一个对我有用 我是 Contentful 的客
  • ZF2 将自定义属性添加到选择表单元素中的选项

    我想将自定义 HTML 属性添加到 Zend Framework 2 表单中的选择选项中 这是我的 Form 类中的 部分 代码 this gt add array name gt lieuRemplissage type gt Selec
  • Google 跟踪代码管理器导致 SPA 中的整个页面重新加载 - React

    当我在 React 的 GTM 中添加触发器时 a a or 元素 它会导致单击时重新加载整个页面 而不是仅重新渲染应用程序的一部分 当我删除谷歌跟踪时 一切都会顺利进行 有没有办法 如何配置 GTM 不影响应用程序的行为 如果 Googl
  • 在设定的时间后从 DOM 中删除元素

    我正在尝试找出在事件触发后从 DOM 中删除元素的 React 方法 我正在尝试发出警报 copySuccess when onClick this props handleCopyFact 被触发 然后在 5 秒后淡出该警报 每个组件的状
  • 如何在android中显示对话框之外的图像?

    我试图在对话框片段的顶部显示配置文件图像 一半在图像之外 我在下面附加了示例对话框 就像那样 并尝试了旧 Stackoverflow 解决方案中的所有 FrameLayout 协作 但我无法存档此内容 请给我正确的解决方案 谢谢 Updat
  • 无法处理未捕获的类型错误:无法读取 createRouterReducer 处未定义的属性“位置”

    我在将路由器连接到 rootReducer 时遇到问题 控制台日志 未捕获的类型错误 无法读取未定义的属性 位置 在 createRouterReducer reducer js 005c 9 不知道如何修复它并将路由器连接到减速器 app
  • “React”在定义之前就被使用了

    我正在使用 create react app typescript eslint 应用程序 在构建过程中出现这样的错误 Line 1 8 React was used before it was defined typescript esl
  • 在运行时更改用作背景的 Drawable xml 内的形状纯色

    我有一个 Drawable xml 文件 background xml
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s

随机推荐

  • iTunes Connect 开发人员拒绝 - 删除不需要的构建/二进制文件

    我将二进制更新上传到新的 iTunesConnect 但尚未提交 我发现了一个错误 并尝试删除现有的二进制文件 找不到方法来做到这一点 然后我提交了审查 但立即被拒绝了 仍然找不到删除它并上传新的方法 如何上传我的新版本 或者如何取消更新并
  • Activity 泄露了 IntentReceiver android.widget.ViewFlipper

    我正在添加一个ViewFlipper从布局资源膨胀为ListView as a Footer 这是我的鳍状肢布局 为简洁起见 省略了详细信息
  • 跟踪 malloc 分配了多少内存

    在快速浏览了 SO 上的相关问题后 我推断没有函数可以检查 malloc 分配给指针的内存量 我正在尝试使用 C 中的简单 char 来复制一些 std string 基本功能 主要是动态大小 并且不想一直调用 realloc 我想我需要跟
  • Android studio gradle与firebase同步错误:响应204:无内容没有内容

    从今天早上开始 我在 android studio 中同步我的 android 项目时遇到了麻烦 当我尝试这样做时 我每次都会遇到相同的错误 部分错误 https i stack imgur com bD3S0 png 所有这些错误都是由同
  • Scala 不可变对象和具有 val 字段的特征

    我想仅使用不可变对象构建我的域模型 但我也想将特征与 val 字段一起使用 并将一些功能移至特征 请看下面的例子 trait Versionable val version 0 def incrementVersion copy versi
  • 为什么我会收到“没有此类方法异常”?

    这是我的代码 看起来没问题 但是当我编译程序时 我得到 No Such method 异常 import java io IOException public class Invoked public static String celeb
  • 如何在 scikit-learn 中正确地将数字特征与文本(词袋)结合起来?

    我正在为网页编写一个分类器 因此我混合了数字特征 并且我还想对文本进行分类 我正在使用词袋方法将文本转换为 大 数值向量 代码最终是这样的 from sklearn feature extraction text import CountV
  • @MustOverride 注释?

    在 NET 中 可以为特定超类中的方法指定 mustoverride 属性 以确保子类重写该特定方法 我想知道是否有人有一个自定义的java注释可以达到相同的效果 本质上 我想要的是推动子类覆盖超类中的方法 该方法本身具有一些必须运行的逻辑
  • 如果违反代码约定规则,如何配置 ReSharper 以使构建失败?

    使用 VS2015 更新 2 ReSharper 2016 1 是否有办法配置 ReSharper 使其在违反代码约定规则时使构建失败 None
  • 有没有办法知道特定程序运行时达到的最大 JVM 调用堆栈深度?

    我今天一直在编写一个递归函数 递归深度取决于输入长度 我想从纯粹兴趣的角度来看 是否有某种方法可以监视 可能在某些 JVM 日志或其他地方 特定程序执行期间的最大调用堆栈深度是多少 经过一番思考 我可以想象一种分析方法来近似计算这个值 但这
  • 用于远程IP(主机)的Java RMI

    我是新手 我无法理解RMI正确 互联网上有大量的教程 但据我所知 它们都是针对本地主机的 服务器和客户端都运行在同一台机器上 我想在任何机器上运行客户端 并且主机将位于一台计算机上 让我们考虑一下IP 11 11 11 11 上1099 但
  • Android:使用 SurfaceView 重新获得焦点

    我目前正在熟悉 Android 尝试 Lunar Lander 示例 我发现 如果您离开应用程序 例如 点击通话按钮 它将破坏底层表面 调用surfaceDestroyed 向后导航 这将触发onWindowVisibilityChange
  • 如何使用 django-rest-framework 测试客户端测试二进制文件上传?

    我有一个 Django 应用程序 其视图接受要上传的文件 使用 Django REST 框架 我对 APIView 进行子类化并实现 post 方法 如下所示 class FileUpload APIView permission clas
  • 如何在 Neo4j 中使用类型层次结构?

    Neo4j 中是否有某种方法可以对类型层次结构进行建模 例如 如果我想构建汽车的类层次结构 我可能有一个 Car 基类型 然后有扩展它的子类 例如 SportCar 等 我希望能够创建 SportCar 的实例 但运行查询来获取所有 Car
  • 在 Cassandra 中存储上次触摸时间的最佳方式

    我将最后一次触摸的时间存储在 Postgres 的 User 表中 但是有许多频繁的更新和足够的争用 我可以看到 3 个相同更新死锁的示例 Cassandra 似乎更适合这个目的 但我应该专门用一个表来实现这个目的吗 我不需要旧的时间戳 只
  • Java 编译器会预先计算文字的总和吗?

    int i 10 20 编译器是否真的会处理这段代码 添加10 20 并且字节码与这行代码相同 int i 30 我在哪里可以读到相关内容 是的 您甚至可以亲自验证 以一个小的 Java 文件为例 public class Main pub
  • 如何从 jenkins Powershell 脚本更新环境变量

    您好尝试从阶段编写的 Powershell 脚本更新 jenkins Env 变量 pipeline agent label master environment def var1 default value def var2 defaul
  • “抄送”c++ istream?

    对于我自己的小解析器框架 我试图定义 类似 以下函数 template
  • AES 实施速度

    我已经编写了 AES 的 C 实现 并尝试使其尽可能快 我刚刚开始编程并接受 IT 培训 到目前为止 我已经实现了约 600 的速度提升 但仍然非常慢 为了将我的 AES 实现与我在 Linux 终端中使用的 openssl speed 命
  • 如何在 Material UI 中布局表单?

    我正在尝试使用 MaterialUI Grid 组件和字段构建以下表单布局 Form Field 1 Field 2 TextArea