如果提交了特定的单词,我如何让文本框执行功能。我有一个可以在mousedown上跳转的机器人,如果我在文本框中写跳转或写move的话,我希望它跳转,它可以执行move功能。我尝试了几件事,但无法正常工作
在这里输入代码
<form id="formDiv" action="" >
Command the robot!: <input type="text" size="50" onkeydown="keyCode(event)">
</form>
<div id="canvasDiv" width="500" height="10"></div>
<script type="text/javascript" src="robotti.js"></script>
<script type="text/javascript">
prepareCanvas(document.getElementById("canvasDiv"), 500, 500);
document.getElementById("canvasDiv").onmousedown = function() {
jump(); }
//document.getElementById("canvasDiv").onkeypress = function() {
//move(); }
document.getElementById("canvasDiv").window.onkeypress = function(event) {
if (event.keyCode == 41) {
move();
}
}
</script>
答案 0 :(得分:0)
这应该有效-:
var text = getElementById("canvasDiv").value;
if(text.includes("move") || text.includes("jump")){
jump();
getElementById("canvasDiv").value = "";
}
答案 1 :(得分:0)
请使用onkeyup代替onkeydown
<!DOCTYPE html>
<html>
<body>
<input type="text" id="canvasDiv" onkeyup="keyCode()" value="">
<script>
function keyCode(e) {
var text = (document.getElementById("canvasDiv").value).toLowerCase();
if(text == 'jump' || text == 'move'){
//call jump function here
alert("jump");
}
}
</script>
</body>
</html>
答案 2 :(得分:0)
您不应使用onkeydown
等HTML属性,而应使用EventListener
。在您的输入字段上注册一个,获取其值并检查(通过switch
或if...else
)用户输入的内容。根据用户的输入,执行您的功能。
document.querySelector('input[type="text"]').addEventListener('keyup', function() {
switch (this.value) {
case 'move':
console.log('move!'); // Your actual function here
this.value = ''; // Reset value
break;
case 'jump':
console.log('jump!'); // Your actual function here
this.value = '' // Reset value
break;
}
});
Command the robot!: <input type="text" size="50">
进一步阅读:
Why is inline event handler attributes a bad idea in modern semantic HTML?
document.querySelector