Mic*_*ine 15 html javascript jquery
更新:
我终于发现"keypress"比Linux平台上的"keydown"或"keyup"有更好的兼容性.我刚刚将"keyup"/"keydown"更改为"keypress",所以一切顺利.
我不知道原因是什么,但它对我来说是解决方案.谢谢所有回复我问题的人.
-
我有一些代码需要使用JQuery检测按键事件(我必须知道用户何时按Enter键),以下是Javascript中的代码:
j.input.bind("keyup", function (l) {
if (document.selection) {
g._ieCacheSelection = document.selection.createRange()
}
}).bind("keydown", function(l) {
//console.log(l.keyCode);
if (l.keyCode == 13) {
if(l.ctrlKey) {
g.insertCursorPos("\n");
return true;
} else {
var k = d(this),
n = k.val();
if(k.attr('intervalTime')) {
//alert('can not send');
k.css('color','red').val('Dont send too many messages').attr('disabled','disabled').css('color','red');
setTimeout(function(){k.css('color','').val(n).attr('disabled','').focus()},1000);
return
}
if(g_debug_num[parseInt(h.buddyInfo.id)]==undefined) {
g_debug_num[parseInt(h.buddyInfo.id)]=1;
}
if (d.trim(n)) {
var m = {
to: h.buddyInfo.id,
from: h.myInfo.id,
//stype: "msg",
body: (g_debug_num[parseInt(h.buddyInfo.id)]++)+" : "+n,
timestamp: (new Date()).getTime()
};
//g.addHistory(m);
k.val("");
g.trigger("sendMessage", m);
l.preventDefault();
g.sendStatuses("");
k.attr('intervalTime',100);
setTimeout(function(){k.removeAttr('intervalTime')},1000);
return
}
return
}
}
Run Code Online (Sandbox Code Playgroud)
它在Windows上工作正常,但在Linux上,它有时无法捕获Enter事件.有人可以帮忙吗?
更新:
如果我只用英语说话,那似乎很好.但是我必须使用一些输入法来输入中文.如果是问题?(如果我使用中文输入法,JQuery无法检测到Enter?)
Rag*_*hav 46
试试这个
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" >
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div>
<input id="TestTextBox" type="text" />
</div>
</body>
<script type="text/javascript">
$(function()
{
var testTextBox = $('#TestTextBox');
var code =null;
testTextBox.keypress(function(e)
{
code= (e.keyCode ? e.keyCode : e.which);
if (code == 13) alert('Enter key was pressed.');
e.preventDefault();
});
});
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
And*_*ore 12
用if (l.keyCode == 10 || l.keyCode == 13)而不是if (l.keyCode == 13)......
在Windows下,新行包含Carriage Return(13)后跟Line Feed(10).
在*nix下,新行仅包含Line Feed(10).
在Mac下,新行仅包含Carriage Return(13).
| 归档时间: |
|
| 查看次数: |
55694 次 |
| 最近记录: |