目前,在Material-UI的TextField中,type = "number"
只接受 数字(0-9)
、逗号(,)
和 双破折号(--)
。
但是,我只需要一个破折号(-)
。
我尝试在inputProps中插入模式,但好像不起作用。
非常感谢任何帮助。
谢谢
<TextField
label="Super Koin"
variant="outlined"
type="number"
inputProps={{
pattern: /^-?\d+(?:\.\d+)?$/g
}}
name="Gajian"
style={{ marginBottom: "22px" }}
defaultValue={
(form.injectCustomer && form.injectCustomer.supercoin) ||
0
}
fullWidth
inputRef={this.superPoints}
InputLabelProps={{
shrink: true
}}
onChange={e => {
this.actionRow(
{ key: "supercoin", value: (e.target.value)},
"supercoin"
);
}}
/>
我试图在onChange
中进行验证。
onChange={e => {
console.log(e.target.value,"EEE")
this.actionRow({
key: "supercoin",
value: e.target.value === "--" ? e.target.value = 0 : e.target.value =
},
"supercoin"
);
}}
但是,对于"-"和"--"的控制台日志为空,并且似乎无法从onChange
验证
input:invalid { background-color: lightpink; }
- FractioninputProps
而不是InputProps
。第一个可以接受inputMode: numeric
,因为它适用于 DOM 输入。而第二个则不行,因为它适用于 MUI 的输入。 - eMTy