IE10和IE8中识别特殊字符的事件
events recognizing special characters in IE10 vs IE8
Stack Overflow上已经提供的答案不是我问题的解决方案。
我可以通过keycode检查特殊字符,但是 dot和delete都给出相同的键代码 46…
在这种情况下如何识别一个特殊字符?
function keypress(ev)
{
if(ev.which == 0)
{
alert('pressed character is special handling character like del,Home,Navigation buttons, etc');
} else {
alert('pressed character is normal character');
}
if(ev.keycode){
var k = ev.keycode;
alert('ascii value of pressed character is ....' + k);
}
}
如果我使用IE8…电动汽车。如果按下的字符是特殊字符,它将变为零并进入'if'块并打印警报…否则它会转到'else'块…
但是在IE10中,它将'else'块总是用于特殊和正常字符…
令人惊讶的是,点和删除在IE10中具有相同的ascii值46 ..在keycode 'if'块的alert中打印相同的内容....
如何区分IE10中按下的正常字符和特殊字符.....
我建议使用onkeydown
事件。如果我们使用它,event.which
就会被识别出来。
区分.
和Delete
按钮的工作演示。
<input type="text" onkeydown="keypress(event)" />
JS:
function keypress(event)
{
alert("something pressed..");
alert("event.which = " + event.which);
if(event.which === 46)
{
alert('Delete button pressed');
} else if(event.which === 190) {
alert('. button pressed');
}
}
EDIT:似乎.
和>
在keydown事件中具有相同的键码190
。为了识别在同一键上的这两个元素,我们需要跟踪Shift
键是否被按下。
有一种方法:
var prevKey = "";
function keypress(event)
{
if(event.which === 16) // only Shift key
prevKey = "Shift";
if(prevKey === "Shift" && event.which === 190){ // Shift + . key
alert("> key pressed");
prevKey = "Something else";
}
}
演示工作相关文章:
- javascript替换换行符和特殊字符
- angularjs删除动态形式元素中的特殊字符
- 使用json_encode通过xmlhttp.responseText发送特殊字符(即caron)
- 在搜索中考虑特殊字符的
- 避免键入一些特殊字符
- Regex测试特殊字符
- 在 Javascript 中对特殊字符进行排序 (æ)
- 必须检查长度,并在文本框中允许一些特殊字符
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 用于在Javascript中删除多个空格的特殊字符
- jQuery-Regex以防止任何特殊字符
- javascript正则表达式来识别所有特殊字符
- RegEx只获取特殊字符,前后不获取任何字符
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- Javascript:包括特殊字符的文本选择
- 将具有特殊字符的值传递给函数onclick事件
- 捕获窗口上的键盘事件不会使特殊字符正确
- IE10和IE8中识别特殊字符的事件
- 我想在只允许空格、a-Z、a-Z、0-9的文本字段上检查按键或向上键事件的特殊字符的有效性
- 特殊字符不适用于 OSX 上的 html 按键事件