Javascript 在文本区域中,按键之前和之后是什么?
我不想允许按功能键,如(F1,F2..等),表格键,也不要添加任何字符 对于下面的代码,这是不是从我的网站工作Javascript 在文本区域中,按键之前和之后是什么?,javascript,html,textarea,Javascript,Html,Textarea,我不想允许按功能键,如(F1,F2..等),表格键,也不要添加任何字符 对于下面的代码,这是不是从我的网站工作 document.getElementById(“代码”).addEventListener(“键控”,函数(e){ var oldOne=此值; var newOne=(this.value+String.fromCharCode(e.keyCode)).toLowerCase(); if(oldOne==newOne){ e、 预防默认值(); } document.getEle
document.getElementById(“代码”).addEventListener(“键控”,函数(e){
var oldOne=此值;
var newOne=(this.value+String.fromCharCode(e.keyCode)).toLowerCase();
if(oldOne==newOne){
e、 预防默认值();
}
document.getElementById('message').innerHTML=“是否相同:”+(oldOne==newOne)+”,在“+oldOne+”之前,在“+newOne”之后;
})
keydown
事件在写入角色之前为您提供对象的状态。
`keyup事件提供对象写入后的状态
您可能希望执行以下操作():
因为转换超出可用字符范围的字符会产生一个
“
,虽然它看起来像一个空字符串,但它占到了长度,不能像空格一样修剪,所以“apple”+“ctrl”
的长度是6
,而它显示为“apple”
,所以最好使用
if (e.keyCode < 32 || e.keyCode > 126) {
// This is not a valid char, do something to ignore
}
if(e.keyCode<32 | | e.keyCode>126){
//这不是有效的字符,请执行忽略操作
}
若要忽略这些特殊字符,而不是将其转换为字符串,请将其附加到当前值,然后与oldValue进行比较。在编写时
String.fromCharCode(e.keyCode)
然后,即使按下,也会得到一个字符串,尽管没有看到值的任何变化,字符串。fromCharCode(e.keyCode)得到的是一些东西,键的字符串格式,它不是空字符串,因此在if中总是得到false
您可以签入keycode,也可以在keyup之后进行检查。什么不起作用,您希望得到什么结果?当它起作用时,它表示不一样。例如,键入apple,然后按ctrl键。当它相同时,它会说“false”。this.value+String.fromCharCode(e.keyCode))。toLowerCase()也给出了我们键入的内容,那么为什么它不起作用呢?Np,我把你的代码段记录下来,然后找出这件事。我也学到了。
String.fromCharCode(e.keyCode)