- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Android 下使用 Firefox/Chrome 时遇到问题。
当我在输入框中键入文本时(参见下面的代码),在键入字母时不会触发 onkeypress、onkeyup 和 onkeydown 事件,但在键入“%”符号或按下空格键时会触发。
在 Android“预装”浏览器中一切正常。
另一个非常罕见的事情,如果我的光标不是最后一个字符,行为是不同的...如果我的光标在文本的中间,在 Firefox 下,所有事件都会为任何键触发。在 Chrome 事件中,按下一个键会触发两次 onkeyup 和 onkeydown,但不会触发 onkeypress。
我在不同的设备上测试过它,有类似的问题。
我找不到在 Internet 上报告的任何类似问题。以前有人遇到过这个问题吗?你是怎么解决的?
像 Amazon.com 这样的网站可以很好地自动完成,所以必须有一个解决方法......
请注意该问题已在最新版本的 Firefox 和 Chrome 中消失
非常感谢您的帮助。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>onKeyXxx event test</h1>
<input type="text" onkeydown="alert('DOWN');" onkeypress="alert('Press');" onkeyup="alert('UP');">
<hr/>
</body>
</html>
最佳答案
setInterval 成功了。
还不确定我将如何在 Script.aculo.us(我用于自动选择下拉列表的库)中实现它,但我会找到一种方法。
这是实现 setTimer 的解决方案示例 :)
<!DOCTYPE html>
<html>
<head>
<script>
typedText="";
function checkTextChange(){
if (document.getElementById("test").value != typedText){
typedText=document.getElementById("test").value;
document.getElementById("output").innerHTML=typedText;
return true;
} else {
return false;
}
}
if (navigator.appVersion.indexOf("Android")>-1 && (navigator.appVersion.indexOf("Safari")==-1 || navigator.appVersion.indexOf("Chrome")>-1)){
alert("Using work around");
var myVar = setInterval(function(){checkTextChange();},200);
}
</script>
</head>
<body >
<h1>onKeyXxx event test</h1>
<form>
<input type="text" name="test" id="test" onkeydown="checkTextChange();" onkeypress="checkTextChange();" onkeyup="checkTextChange();">
</form>
<div id="output"></div>
<hr>
</body>
</html>
关于javascript - Android 下的 Firefox/Chrome 在键入字母时不会触发 OnKeyPress、onKeyDown、onKeyUp 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21388064/
function h(x) { alert(x); } 当我按“a”警报为空时 当我在“a”之后按“b”=>ab 只提醒“a”并且我想要“ab” 当我输入“abcd”时,它只提示“abc”,
我正在编写一个简单的 javascript 表单,用于根据值“blue”检查输入值。现在,如果您输入“blue”,它会说它不正确,但如果添加任何其他字符,它会说正确。好像有一个字符的延迟,所以当我输入
我有如下 HTML 文本输入 ID: = 48 && event.charCode 现在,在 onkeypress 中我成功添加了,因此只能输入数字。但我有一个 JavaSc
我正在使用以下内容并尝试让用户的字母猜测出现在屏幕上,但是当我检查开发工具时,按键将返回到数组,如 [ , , , , , ,] 。没有字母。有想法吗? var letguessText = docu
我有一个可选电话号码的 html 输入,以及 2 个 radio 输入(留言、不留言): #session.secondaryPhone#" /> 请注意,我正在运行两个事件(删除其中一个事件会产生相
我有一个项目列表,上面有一个输入字段。 输入字段是一个过滤器,它应该根据您在输入字段中键入的文本过滤列表。 例如:如果您输入“th”,它应该过滤列表,以便所有项目都以“th”开头。 为此,我使用 Aj
我编写了一个处理鼠标和键盘事件的代码。但是 onkeypress 事件在 Firefox、IE 等中没有触发。我也尝试过 keydown 事件,但这不起作用。 li 元素的 HTML 代码为: pri
我正在学习 Javascript.. 仅当我的脚本标记位于输入文本元素下方时,下面的代码才起作用,但如果我将代码放置在输入文本标记上方,则它不起作用。我可以知道为什么吗?下面是代码:
我正在尝试使用 JavaScript 将 onKeyPress 事件添加到动态创建的 html 元素中。实际上,添加了元素,分配了 id,并添加了 innerHTML,但是 onmouseover、o
我有一个关键字搜索文本框,我想在用户按下 Enter 键时运行搜索功能。但是现在该事件不会被解雇。我的代码如下: onkeyPress=(e)=>{ if(e.key === "Enter" |
如果未选中复选框,我将使用 JavaScript 禁用键盘,如果选中复选框,则仅启用数字。 我的代码是。 function isNumberKey(evt) { i
document.getElementById('my').onkeypress = function(event) { this.value = this.value.toUpperCa
我的 onkeypress 事件在我网站的搜索栏上不起作用。这是我的 javascript 和 html 代码: window.onload = function() { document.g
我正在 try catch 窗口上的按键事件(使用使用 Gecko 引擎的应用程序打开的 html 页面) function onkeypress(){ alert("key presse
我要求不使用 html 事件处理程序。所以我试图从 script 处理它。我做了一个小功能,但它不起作用 function lld () { document.getElementById
使用 Javascript 的 onKeypress 尝试在返回后调用函数。这不起作用,因为由于验证数字,该字段尚未完成。 onKeyPress="return numbersonly(event,
对于下面的文本框: 这个脚本运行良好。 function doit_onkeypress(event){ if (event.keyCode == 13 || event.which
这段代码有以下问题: search();如果我按下一个键就不会被解雇。但是当我删除 一切正常。 有什么方法可以解雇onkeypress在表单或任何其他函数中? 我正在使用 Phon
每次在文本框中按下一个键时,我都需要调用一个 js 函数: function checkValidity() { alert("Checking..
我有 5 个可点击的 div 标签,div 显示一个带有数字的黄色方 block 。当用户点击一个方 block 时,方 block 的颜色会发生变化,表明被点击的方 block 是“事件”方 blo
我是一名优秀的程序员,十分优秀!