一些客户使用他们的iPad蓝牙键盘向我们的内部站点之一输入文本时,一直在报告问题。使用台式机或屏幕键盘上的iPad时,主要在某些输入上按Enter键可以很好地工作,但使用连接至iPad的蓝牙键盘时则不能。
经调查,onKeyUp当连接到iPad上的蓝牙键盘时,似乎输入的任何回车键代码都返回0。该演示工作正常,但是当使用屏幕键盘时,由于键码返回0而无法正常工作。我创建了这个jsFiddle进行演示。在iPad的Chrome和Safari上都进行了测试,结果与正常工作相同,onKeyPress但使用时仅返回0 onKeyUp。
$('#inputKeyUp').keyup(function (event){
$("#outputKeyUp").text("Key Up Key: " + event.which);
});
$('#inputKeyPress').keypress(function (event){
$("#outputKeyPress").text("Key Press Key: " + event.which);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea id="inputKeyUp">keyup</textarea>
<div id="outputKeyUp">Key Up Key:</div>
<b/>
<textarea id="inputKeyPress">keypress</textarea>
<div id="outputKeyPress">Key Press Key:</div>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)