gpt4 book ai didi

javascript - 在 keypressup 事件中按下单个键时,textarea 打印两个字符

转载 作者:行者123 更新时间:2023-11-28 08:13:11 25 4
gpt4 key购买 nike

我正在使用谷歌虚拟键盘并在文本区域上设置。
当我在文本区域上写一些东西时,它们会在文本区域中打印两个字符,一个是大写,第二个是小写。

我为文本区域编写了一个 JavaScript 函数,其中“.”之后- 点这些字符使其自动大写字母。

如何删除一个字符并且文本区域仅打印一个字符?因为当我按单个键时,它们会打印两个字符。此函数用于“.”后的大写字母。点并在文本区域上设置按键事件。

function caps(e, textarea, value){
//debugger;
var unicode=e.keyCode? e.keyCode : e.charCode;
var str=value.trim();
str=str.charAt(str.length-1);

if((str=="." || value.length==0) && (unicode>=97 && unicode<=122)){
textarea.value=textarea.value+String.fromCharCode(unicode).toUpperCase();
return false;
}
return true;
}

最佳答案

要停止事件的默认行为,您可以使用e.preventDefault();。所以类似

function caps(e, textarea, value){
//debugger;
var unicode=e.keyCode? e.keyCode : e.charCode; //my keyboard threw out ascii..

var str=value.trim();
str=str.charAt(str.length-1);
if(str=="." || value.length==0){

textarea.value=textarea.value+String.fromCharCode(unicode).toUpperCase();
e.preventDefault();
}
}


input.addEventListener("keypress",function(e){
if(e.keyCode==8) return true
caps(e,input,input.value)

},false)

您可以使用return false,但您需要执行类似的操作

input.onkeypress=function(){
if(e.keyCode==8) return true
return caps(e,input,input.value); //pass false from caps too event
}

Demo

关于javascript - 在 keypressup 事件中按下单个键时,textarea 打印两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com