我试图从输入中排除减号和加号,但是它出错了:
handleChange(event) {
const value = event.target.value.replace(/\+|-/ig, '');
this.setState({financialGoal: value});
}
呈现输入代码:
<input style={{width: '150px'}} type="number" value={this.state.financialGoal} onChange={this.handleChange}/>
发布于 2017-04-28 12:25:16
我试图模仿您的代码,并注意到存在一个与<input type='number' />
交互的问题。要解决这个问题,请检查这个示例并自己尝试:https://codepen.io/zvona/pen/WjpKJX?editors=0010
您需要将其定义为普通输入(type='text'),只对数字使用模式:
<input type="text" pattern="[0-9]*"
onInput={this.handleChange.bind(this)} value={this.state.financialGoal} />
然后比较输入的有效性:
const financialGoal = (evt.target.validity.valid) ?
evt.target.value : this.state.financialGoal;
这种方法最大的警告是,当涉及到移动->键盘不是数字,而是以正常的字母格式。
发布于 2020-12-03 21:03:34
简单的反应方式
<input
onKeyPress={(event) => {
if (!/[0-9]/.test(event.key)) {
event.preventDefault();
}
}}
/>
发布于 2017-12-19 22:52:59
一行代码
<input value={this.state.financialGoal} onChange={event => this.setState({financialGoal: event.target.value.replace(/\D/,'')})}/>
https://stackoverflow.com/questions/43687964
复制相似问题