如何在onKeyDown动作中传递一个参数?

问题描述 投票:0回答:1

document.addEventListener('keydown', handle);
  function handle(e) {
   let value = document.getElementById("t11").value 
    if(e.code == "Space"){
      if(value =="n")value="t"
      else if(value == "t")value="P"
      else if(value == "P")value="S"
      else if(value =="S")value="n"
      else value ="n"
      document.getElementById("t11").value = value
    }
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/15.3.2/react-dom.min.js"></script>
<html>
<body>
<label>Focus the input first (e.g. by clicking in it), then try pressing Space.</label>
<input type="text" id="t11"   className="attendanceInput"  readonly/>
</body>
</html>

我有一个输入,通过按空格键,改变值。

<input type="text" id="11"  onKeyDown={this.handleKeyDown.bind()} className="attendanceInput" readOnly/>
 handleKeyDown(e) {
    if(e.keyCode == 32){
      let value = e.value
      if(value =="n")e.value ="t"
      else if(value == "t")e.value="P"
      else if(value == "P")e.value="S"
      else if(value =="S")e.value="n"
      else e.value ="n"
      document.getElementById("11").value=e.value
    }
  }

我需要用输入的id来更新值和其他动作。我如何才能做到这一点?谢谢,我有一个输入,通过按空格键来改变数值。

javascript reactjs
1个回答
1
投票

解决这个问题的一个方法是调用 e.currentTarget.id 之内 handleKeyDown 方法,它将返回 id 的值。

但是,如果你想更新输入元素的 input 元素,你将需要在你的组件中维护一个本地状态,并随后通过绑定状态更新的 onChange 事件。

<input value={input1}  onChange={(e) => this.handleInput(e)} className="attendanceInput" />
© www.soinside.com 2019 - 2024. All rights reserved.