我想在反应输入中只允许带小数的数字并根据获得的值做一些条件,低于我尝试的工作效果很好但有以下问题
<FormInput
name="amount"
label="Amount"
onChange: this.handleChange,
startAdornment: (<InputAdornment position="start">$</InputAdornment>),
pattern: '[0-9]*',
/>
handleChange = (event) => {
const { value } = event.target;
const validValue = Math.abs(parseFloat(value));
if (validValue && !isNaN(validValue)) {
// some condition...
// i have some other set of value that i compare here with input got like if
// 1) validValue > someValue, then this.setState({ someValue })
// 2) validValue <= someValue, then this.setState({ validValue })
// 3) else this.setState({ validValue: 0 })
}
}
但是这里的问题是我无法输入十进制以及其他数字,例如我需要输入1.2,然后我首先需要输入12,然后在2之前添加'。'(十进制),所以请帮我做什么允许带小数点的数字和其他数字
最佳答案
您不应为此使用模式。您可以简单地将type="number"
传递给您的输入,它将进行您想要的验证。
<FormInput
name="amount"
label="Amount"
type="number"
onChange={this.handleChange}
startAdornment={<InputAdornment position="start">$</InputAdornment>}
/>