Att*_*Kun 5 html javascript jquery keypress javascript-events
我只能在没有新按下的键的情况下检索值.使用keyup事件不是一个选项,因为如果用户没有释放密钥,它就不会触发.这很重要,因为我想对每一个按键动作.
与从事件的参数可达键代码结合旧的价值是不能接受要么,因为它不能保证用户将键入的文本字符串的结尾.
可以计算出按键后的值。这在非 IE 浏览器中很容易,在 IE 中则比较棘手,但以下方法可以做到这一点:
document.getElementById("your_input").onkeypress = function(evt) {
var val = this.value;
evt = evt || window.event;
var charCode = typeof evt.which == "number" ? evt.which : evt.keyCode;
if (charCode) {
var keyChar = String.fromCharCode(charCode);
var start, end;
if (typeof this.selectionStart == "number" && typeof this.selectionEnd == "number") {
start = this.selectionStart;
end = this.selectionEnd;
} else if (document.selection && document.selection.createRange) {
// For IE up to version 8
var selectionRange = document.selection.createRange();
var textInputRange = this.createTextRange();
var precedingRange = this.createTextRange();
var bookmark = selectionRange.getBookmark();
textInputRange.moveToBookmark(bookmark);
precedingRange.setEndPoint("EndToStart", textInputRange);
start = precedingRange.text.length;
end = start + selectionRange.text.length;
}
var newValue = val.slice(0, start) + keyChar + val.slice(end);
alert(newValue);
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |