gpt4 book ai didi

javascript - 当 "onChange"已为不同功能保留时,如何避免在 react 输入字段中使用空格?

转载 作者:行者123 更新时间:2023-12-02 23:16:07 25 4
gpt4 key购买 nike

我有一个带有“onChange”事件的输入字段,它使用“forEach”方法获取数组的元素,并且效果很好。但我还想在输入字段中添加一项附加功能 - 避免输入空格。我应该如何附加这个附加功能?

我尝试使用“onKeyDown”事件来避免空格,但可能会出现错误。下面是输入字段的代码:

ma​​inList.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(value) {
this.setState({
sprNotDeleted: value.replace(/\s/g, "")
});
}

如果我使用“onKeyDown”,则会出现相应的错误: 类型错误:sprNotDeleted.map 不是函数

最佳答案

观察到,对于 onKeyDown 您没有将事件绑定(bind)到此。

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() 进行处理,您可以通过模式本身来处理它吗?

<input 
type="text"
pattern="[^\s]+"
/>

祝你编码愉快!!

关于javascript - 当 "onChange"已为不同功能保留时,如何避免在 react 输入字段中使用空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57156099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com