Я сделал простую демонстрацию формы, используя реактивный материал, в котором у меня есть только одно поле select
. Я использовал эту ссылку, чтобы сделать опцию выбора
https://material -ui.com / демки / выбирает /
используя 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);