作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用谷歌虚拟键盘并在文本区域上设置。
当我在文本区域上写一些东西时,它们会在文本区域中打印两个字符,一个是大写,第二个是小写。
我为文本区域编写了一个 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
}
关于javascript - 在 keypressup 事件中按下单个键时,textarea 打印两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23905858/
我正在使用谷歌虚拟键盘并在文本区域上设置。 当我在文本区域上写一些东西时,它们会在文本区域中打印两个字符,一个是大写,第二个是小写。 我为文本区域编写了一个 JavaScript 函数,其中“.”之后
我是一名优秀的程序员,十分优秀!