【发布时间】:2019-02-12 07:29:53
【问题描述】:
我使用 React Material 做了一个简单的表单演示,其中我只有一个 select 字段。我使用此链接制作选择选项
https://material-ui.com/demos/selects/
使用api 我可以在顶部显示标签(使用此shrink={true})并使用此displayEmpty 显示禁用值。
所以我的表格看起来像这样,没有任何验证
https://codesandbox.io/s/8x4wnjnrz8
现在我尝试使用这个插件来验证我的表单 https://www.npmjs.com/package/react-material-ui-form-validator 但是我的默认选项是隐藏的,并且选择框标签也看起来很尴尬并且变小了
这是我的代码 https://codesandbox.io/s/8x4wnjnrz8
import ReactDOM from "react-dom";
import React from "react";
import PropTypes from "prop-types";
import { withStyles } from "@material-ui/core/styles";
import Input from "@material-ui/core/Input";
import InputLabel from "@material-ui/core/InputLabel";
import MenuItem from "@material-ui/core/MenuItem";
import FormHelperText from "@material-ui/core/FormHelperText";
import { FormControl, Button } from "@material-ui/core";
import Select from "@material-ui/core/Select";
import "./styles.css";
import {
ValidatorForm,
TextValidator,
SelectValidator
} from "react-material-ui-form-validator";
function App() {
return (
<div className="App">
<ValidatorForm onSubmit={() => {}} className="" autoComplete="off">
<FormControl>
<InputLabel shrink={true} htmlFor="age-simple">
Age
</InputLabel>
<SelectValidator
required
value=""
name="name"
displayEmpty
validators={["required"]}
errorMessages={["this field is required", "email is not valid"]}
inputProps={{
name: "age",
id: "age-simple"
}}
input={<Input id="age-simple" />}
className=""
>
<MenuItem value="">
<em>None</em>
</MenuItem>
<MenuItem value={10}>Ten</MenuItem>
<MenuItem value={20}>Twenty</MenuItem>
<MenuItem value={30}>Thirty</MenuItem>
</SelectValidator>
</FormControl>
<Button type="submit"> submit</Button>
</ValidatorForm>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
【问题讨论】:
标签: javascript reactjs validation material-design material-ui