javascript - 如何在 onKeyDown 操作中传递参数?
问题描述
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 来更新值和其他操作。我怎样才能做到这一点?谢谢。
解决方案
解决此问题的一种方法是在方法e.currentTarget.id
内调用,该handleKeyDown
方法将返回id
输入元素的 。
但是,如果您希望更新input
元素的值,则需要在组件中维护本地状态,然后通过绑定状态更新onChange
事件来更新状态。
<input value={input1} onChange={(e) => this.handleInput(e)} className="attendanceInput" />
推荐阅读
- dkms - 仅为特定内核版本构建 dkms 模块
- cql - Confluence Rest API - 返回按位置排序的页面
- bash - ROS安装:没有这样的文件或目录
- c# - 如何将整数转换为向上舍入而不是向下舍入?
- c# - 涉及数学表达式的 For 循环
- networking - Kubernetes pod 无法连接到外部数据库
- ansible - Ansible 解析 stdout_lines 以验证特定项目的值
- reactjs - 在单个父应用程序中嵌套多个反应应用程序
- ios - 防止 Angular NativeScript WebView 通过捏缩放进行缩放
- python-3.6 - 如何修复 pip3 intall pygdal==2.2.3.3 或 pip3 install pygdal 发送此错误