我只是开始一个打字文本项目,而不是英文打字文本。它仅适用于孟加拉语。我的打字项目已经完成了99%的英语语言工作,但是在孟加拉语语言中,我发现了一个小而大的问题。
我有一个输入框,它将一个一个地匹配所有单词。您输入一个单词并按空格键,它将检查该单词是否匹配,并在移动后查找下一个单词。很好。
我如何检查:在输入框 输入时事件中 event.data ===“” ,而不是移至下一个单词。>
但是在孟加拉语中,当我按下键“ c”(不是第一个字符,而是单词的第一个字符)时,它多次触发了oninput事件。具有各种event.data值的空格也包括在内。这就是为什么按下键盘上的c 时它会转到下一个单词。
现在您无法在控制台中找到多个事件,因为您的计算机中没有该软件。因此,为此我提供了一个简短的屏幕: see_the_picture_for_butter_understanding
onkeyup事件问题: see_the_picture
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<style>
@font-face {
font-family: 'SutonnyMj';
src: url('assets/fonts/SutonnyMj.ttf'),
url('assets/fonts/sutonnymj.woff2') format('woff2'),
url('assets/fonts/sutonnymj.woff') format('woff');
font-weight: normal;
font-style: normal;
}
#textbox {
width: 200px;
height: 200px;
font-family: 'SutonnyMj';
font-size: 50px;
}
</style>
<body>
<textarea id="textbox" type="text"></textarea>
<script>
var textBox = document.getElementById("textbox");
textBox.oninput = function(e) {
console.log(event); // multiple event fire when the Software is Enable
if(event.data === " ") {
// move_to_the_next_word();
}
}
</script>
</body>
</html>
注意事项:之所以发生这种情况,是因为我使用了名为 Bijoy Bangla 的软件来编写孟加拉语。 (这是孟加拉语打字测试所必需的)
答案 0 :(得分:0)
正如@Ahmad所提到的,每次更改后都会触发'input'事件,但是您可以使用'keyup'事件来指定更具体的事件,该事件将为event
对象提供更多控件和属性。例如,您将能够使用event.which
语句处理'Space'。下面是一个示例:
var textBox = document.getElementById("textbox");
textBox.onkeyup = function(e) {
console.log(event);
if(event.which === 32) { //space keycode
// move_to_the_next_word();
}
}
答案 1 :(得分:0)
尝试一下!
function runScript(e) {
if (e.keyCode == 67) {//c
console.log("you have entred 'c' char")
}
if(e.keyCode == 32){//space
console.log("space ")
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input id="scriptBox" type="text" onkeyup="return runScript(event)" />