Material Ui - 在 "select" 模式下向 TextField 添加必需的属性
Material Ui - Add required attribute to a TextField in "select" mode
我正在尝试在 select 模式下制作 "required" TextField。
我尝试像此代码段中那样添加 required
道具,但如果我没有 select 任何东西,这不会阻止提交事件。尽管它在标签中添加了“*”。
请检查这个sandbox
<TextField
id="select-currency"
select
label="Select"
value={this.state.currency}
onChange={this.handleChange("currency")}
required
>
{currencies.map(option => (
<MenuItem key={option.value} value={option.value}>
{option.label}
</MenuItem>
))}
</TextField>
更新:(真的澄清了)
我说的是 html5 验证。在沙箱示例中有 Select 和文本字段,根据需要设置文本字段将阻止提交事件并显示本机 html5 错误说 "this field is required",如果字段是 "select".
控制表格行为不是现场责任。它是父子关系和自上而下的数据传递。
表单(组件)向字段组件提供组件的当前值(有效性信息、更改处理程序)。字段根据道具使用样式和元素显示内容(需要时 *
,错误边框等),但决定 value/validity/submiting 的是表单的角色。
Material Ui 提供了另一个组件 Native Select 来处理这种本机验证。
请检查这个例子
它最近在 material ui 中实施。如果您将 @material-ui/core
升级到版本 4.11.0 它将工作 https://github.com/mui-org/material-ui/issues/20402
我正在尝试在 select 模式下制作 "required" TextField。
我尝试像此代码段中那样添加 required
道具,但如果我没有 select 任何东西,这不会阻止提交事件。尽管它在标签中添加了“*”。
请检查这个sandbox
<TextField
id="select-currency"
select
label="Select"
value={this.state.currency}
onChange={this.handleChange("currency")}
required
>
{currencies.map(option => (
<MenuItem key={option.value} value={option.value}>
{option.label}
</MenuItem>
))}
</TextField>
更新:(真的澄清了) 我说的是 html5 验证。在沙箱示例中有 Select 和文本字段,根据需要设置文本字段将阻止提交事件并显示本机 html5 错误说 "this field is required",如果字段是 "select".
控制表格行为不是现场责任。它是父子关系和自上而下的数据传递。
表单(组件)向字段组件提供组件的当前值(有效性信息、更改处理程序)。字段根据道具使用样式和元素显示内容(需要时 *
,错误边框等),但决定 value/validity/submiting 的是表单的角色。
Material Ui 提供了另一个组件 Native Select 来处理这种本机验证。
请检查这个例子
它最近在 material ui 中实施。如果您将 @material-ui/core
升级到版本 4.11.0 它将工作 https://github.com/mui-org/material-ui/issues/20402