虽然我不认为你可以直接访问用户状态的Insert
状态,但你可以计算出用户在编辑字段时字符串的长度。
考虑一下,与一个简单的<input id="input" />
:
var i = document.getElementById('input');
document.onkeydown = function(e) {
var c = String.fromCharCode(event.keyCode);
if(null !== c.match(/\w/)) {
l = i.value.length;
}
}
document.onkeyup = function(e) {
var c = String.fromCharCode(event.keyCode);
if(null !== c.match(/\w/)) {
if(l === i.value.length) {
console.log("Keyboard insert might be off - length hasn't changed");
}
}
}
请注意,有一个基本的检查来尝试仅隔离字母和数字(与match
(从这里keyCode
借来的)相对,因为您不想对按下的 shift 键执行检查,例如。
这里的基本 POC:http: //jsfiddle.net/Xp3Jh/
我确信您可以进行更深入的检查,但希望这会有所帮助!