首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当"onChange“已经为不同的函数保留时,如何避免在function输入字段中使用空白?

当"onChange“已经为不同的函数保留时,如何避免在function输入字段中使用空白?
EN

Stack Overflow用户
提问于 2019-07-23 03:04:34
回答 4查看 9.7K关注 0票数 0

我有一个带有"onChange“事件的输入字段,它用"forEach”方法获取数组的元素,并且工作得很好。但是我也想在输入字段中添加一个额外的特性--避免输入空格。我应该如何附加这个附加功能?

我试图使用"onKeyDown“事件来避免空白,但可能会给我带来一个错误。下面是输入字段的代码:

mainList.js

代码语言:javascript
运行
复制
<input
type="text"
className="form-control"
value={sprNotDeleted.value}
onKeyDown= 
{this.AttributeValidation(sprNotDeleted.value)}
onChange={this.inputChanged.bind(
this,
sprNotDeleted.id
)}
/>

inputChanged()

代码语言:javascript
运行
复制
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()

代码语言:javascript
运行
复制
 AttributeValidation(value) {
    this.setState({
      sprNotDeleted: value.replace(/\s/g, "")
    });
  }

如果我使用"onKeyDown":TypeError: sprNotDeleted.map不是一个函数,这里有一个相应的错误

EN

Stack Overflow用户

回答已采纳

发布于 2019-07-23 03:23:39

注意到,对于onKeyDown,您没有将事件绑定到该事件。

onKeyDown= {this.AttributeValidation.bind(此,sprNotDeleted.value )}

代码语言:javascript
运行
复制
<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处理作为输入类型文本,您可以通过模式本身来处理它吗?

代码语言:javascript
运行
复制
<input 
    type="text" 
    pattern="[^\s]+"
/>

编码愉快!!

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57156099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档