首页 > 解决方案 > 如何使用逗号字符,如在 React 中输入输入

问题描述

我正在尝试进行标签输入,当用户输入“,”字符时,我不想在输入中添加条目

我像 onKeyDown 上的那个函数一样使用它

inputKeydown = e => {
    const val = e.target.value;
    var patt = /^[0-9]*$/;
    if (e.key === "Enter" ||  e.which === 188 && val) {
      let a = this.state.zips.includes(val);
      if (
        this.state.tags.find(
          tag => tag.value.toLowerCase() === val.toLowerCase()
        )
      ) {
        return;
      }
      if (val.length != 5) {
        return;
      }
      this.setState({ tags: [...this.state.tags, { match: a, value: val }] });
      this.tagInput.value = null;
    } else if (e.key === "Backspace" && !val) {
      this.removeTag(this.state.tags.length - 1);
    }
  };

这是如果用户按下输入条目转到this.state.tags数组,如果用户键入“,”我不想这样做,将是相同的操作。

我用于那个

e.which === 188

一切正常,但这也添加到输入“,”字符。我不想在输入中显示“,”字符我需要做什么?

标签: javascriptreactjs

解决方案


只需在您的条件中使用e.preventDefault() 即可不触发默认事件(插入逗号)

document.getElementById('textinput').addEventListener('keydown', e => {
  if(e.which === 188){
    alert('comma')
    e.preventDefault()
  }
})
<input type="text" id="textinput" />


推荐阅读