我有一个带有"onChange“事件的输入字段,它用"forEach”方法获取数组的元素,并且工作得很好。但是我也想在输入字段中添加一个额外的特性--避免输入空格。我应该如何附加这个附加功能?
我试图使用"onKeyDown“事件来避免空白,但可能会给我带来一个错误。下面是输入字段的代码:
mainList.js
<input
type="text"
className="form-control"
value={sprNotDeleted.value}
onKeyDown=
{this.AttributeValidation(sprNotDeleted.value)}
onChange={this.inputChanged.bind(
this,
sprNotDeleted.id
)}
/>inputChanged()
inputChanged = (index, e) => {
const { sprNotDeleted } = this.state;
sprNotDeleted.forEach(point => {
point.value = point.id === index ? e.target.value : point.value;
});
this.setState({ sprNotDeleted, isEdit: false });
};AttributeValidation()
AttributeValidation(value) {
this.setState({
sprNotDeleted: value.replace(/\s/g, "")
});
}如果我使用"onKeyDown":TypeError: sprNotDeleted.map不是一个函数,这里有一个相应的错误
发布于 2019-07-23 03:23:39
注意到,对于onKeyDown,您没有将事件绑定到该事件。
onKeyDown= {this.AttributeValidation.bind(此,sprNotDeleted.value )}
<input
type="text"
className="form-control"
value={sprNotDeleted.value}
onKeyDown= {this.AttributeValidation.bind(
this,
sprNotDeleted.value
)}
onChange={this.inputChanged.bind(
this,
sprNotDeleted.id
)}
/>当您访问这个范围时,建议使用这个bind()
与通过onKeyDown()进行处理不同,您能否尝试使用模式regex处理作为输入类型文本,您可以通过模式本身来处理它吗?
<input
type="text"
pattern="[^\s]+"
/>编码愉快!!
https://stackoverflow.com/questions/57156099
复制相似问题