我有:
$(someTextInputField).keypress(function() {
alert($(this).val());
});
Run Code Online (Sandbox Code Playgroud)
现在警报总是在按键前返回值(例如,字段为空,我输入'a',警报给我''.然后我输入'b',警报给我'a'......).但是我想要按键后的价值 - 我怎么能这样做?
背景:我想在文本字段包含至少一个字符时立即启用按钮.所以我在每个按键事件上运行此测试,但使用返回的val()结果总是落后一步.使用change()事件对我来说不是一个选项,因为在您离开文本框之前按钮被禁用.如果有更好的方法,我很高兴听到它!
在我的三星Galaxy标签4(Android 4.4.2,Chrome:49.0.2623.105)上,我遇到了keyCode始终为229的情况.
我为两种情况设置了一个简单的测试
<div contenteditable="true"></div>
<input>
<span id="keycode"></span>
Run Code Online (Sandbox Code Playgroud)
脚本:
$('div, input').on('keydown', function (e) {
$('#keycode').html(e.keyCode);
});
Run Code Online (Sandbox Code Playgroud)
幸运的是,我可以找到关于此的帖子,但我找不到一个有效的解决方案.有人建议改为使用keyup或使用该textInput事件,但只会触发该事件blur.
现在,最重要的是,默认股票浏览器不会发生这种情况:(
任何帮助,将不胜感激!
更新:如果事实证明这是不可能的,我仍然可以在插入符号之前抓取字符:post
是否有其他人keyup在iOS 9 中遇到问题没有解雇?
只是一个简单的测试床为我复制了这个问题.
<input id="txtInput" />
Run Code Online (Sandbox Code Playgroud)
香草JS:
document.getElementById('txtInput').onkeyup = function () {
console.log('keyup triggered');
}
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('#txtInput').on('keyup', function () {
console.log('keyup triggered');
});
Run Code Online (Sandbox Code Playgroud)
既不火......
我遇到麻烦keyup(),keydown()而keypress()事件在iPad上运行.当我连接无线蓝牙键盘并尝试使用键盘输入时会出现问题 - 事件不会触发.我尝试在iPad上使用Safari和Chrome(iOS 6.1).这个相同的HTML在桌面上的Firefox,Safari,Chrome等中运行良好.有没有办法更改此代码,使其在平板电脑上工作?我检查了document.activeElement,它似乎是文件正文,这是正确的.
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(document).keyup(function(event) {
document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keyup " + event.which) + "<br>";
});
$(document).keydown(function(event) {
document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keydown " + event.which) + "<br>";
});
$(document).keypress(function(event) {
document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + ("keypress " + event.which) + "<br>";
});
});
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)