onkeydown事件问题

csdnbuku 2016-03-24 10:08:12
问一个问题,使用JS想让中文输入法在textarea中每按一次键就触发一次,有什么办法。onkeydown不起作用。谢谢。
...全文
371 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnbuku 2016-04-04
  • 打赏
  • 举报
回复
引用 10 楼 lcc54shen 的回复:
function doQueryAjax(){ var oldvalue = $("#oldValue").val();// 这个用来判断你输入前后内容是否有变化,因为不同浏览器中文输入的时侯,你的标签里的文本内容不会出现变化 var xx = $("#textarea").val();//就是你输入的那个搜索的那个标签的值 // console.log(oldvalue + " :: " +xx); if(xx == oldvalue){ return; }else{ time++; setTimeout("timeAdd()",500); setTimeout("timeQuery()",502); } }
我要的效果是 ,中文输入法每按键一次就触发,不管有没有内容打入textarea,就像9楼演示的那样。可是他那个代码好像在火狐上不太好使。
csdnbuku 2016-04-04
  • 打赏
  • 举报
回复
引用 9 楼 Nobody_Wang 的回复:
onkeyup 可以在中文输入法在textarea中每按一次键就触发一次 onkeydown 在输入中文时只每次触发事件返回ascii为229的字符 onkeypress 在中文输入法输入时无效
你好。我用火狐按照你这个代码测试,时灵时不灵的。有时候就没反应。 郁闷。
csdnbuku 2016-04-04
  • 打赏
  • 举报
回复
引用 8 楼 shen332401890 的回复:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/charCode
这个只是对BODY的,我加了个textarea就没有反应了,在里面按键就没反应了。
lcc54shen 2016-03-30
  • 打赏
  • 举报
回复
function doQueryAjax(){ var oldvalue = $("#oldValue").val();// 这个用来判断你输入前后内容是否有变化,因为不同浏览器中文输入的时侯,你的标签里的文本内容不会出现变化 var xx = $("#textarea").val();//就是你输入的那个搜索的那个标签的值 // console.log(oldvalue + " :: " +xx); if(xx == oldvalue){ return; }else{ time++; setTimeout("timeAdd()",500); setTimeout("timeQuery()",502); } }
Nobody_Wang 2016-03-29
  • 打赏
  • 举报
回复
onkeyup 可以在中文输入法在textarea中每按一次键就触发一次


onkeydown 在输入中文时只每次触发事件返回ascii为229的字符


onkeypress 在中文输入法输入时无效


csdnbuku 2016-03-29
  • 打赏
  • 举报
回复
引用 5 楼 jslang 的回复:
用oninput事件
不符合要求。我要中文输入法中文状态下每按键一次就触发一次。挺麻烦的。没有现成的法子。
顾小林 2016-03-29
  • 打赏
  • 举报
回复
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/charCode
顾小林 2016-03-29
  • 打赏
  • 举报
回复
Characters entered through an IME do not register through keyCode or charCode.
天际的海浪 2016-03-26
  • 打赏
  • 举报
回复
用oninput事件
csdnbuku 2016-03-26
  • 打赏
  • 举报
回复
引用 3 楼 lcc54shen 的回复:
var isTrue = false; var time = 0; var delay = 0; function timeQuery(){ if(time == delay){ time = 0; delay = 0; $("#oldValue").val($("textarea[name='DESCRIPTION']").val()); 你的操作 } } function timeAdd(){ delay++; } function doQueryAjax(thisform){ var oldvalue = $("#oldValue").val(); var xx = thisform.DESCRIPTION.value; // console.log(oldvalue + " :: " +xx); if(xx == oldvalue){ return; }else{ time++; setTimeout("timeAdd()",500); setTimeout("timeQuery()",502); } } 这是我写的一个类似实时搜索的一个玩意,用的keyup去调用doQueryAjax,希望对你用帮助
能否上一个完整示例代码。有点看不懂。这个thisform指什么。新手。多谢!
lcc54shen 2016-03-25
  • 打赏
  • 举报
回复
var isTrue = false; var time = 0; var delay = 0; function timeQuery(){ if(time == delay){ time = 0; delay = 0; $("#oldValue").val($("textarea[name='DESCRIPTION']").val()); 你的操作 } } function timeAdd(){ delay++; } function doQueryAjax(thisform){ var oldvalue = $("#oldValue").val(); var xx = thisform.DESCRIPTION.value; // console.log(oldvalue + " :: " +xx); if(xx == oldvalue){ return; }else{ time++; setTimeout("timeAdd()",500); setTimeout("timeQuery()",502); } } 这是我写的一个类似实时搜索的一个玩意,用的keyup去调用doQueryAjax,希望对你用帮助
csdnbuku 2016-03-25
  • 打赏
  • 举报
回复
引用 1 楼 hch126163 的回复:
chrome测试 中文输入法 每次按键盘,能触发onkeydown 不过不能获取到按键的 charCode keyCode。 获取到的是229
是要用中文输入法打出来中文。可以吗?我试了不行,只能切换到英文状态下才可以。可以的话方便截个图?
hch126163 2016-03-25
  • 打赏
  • 举报
回复
chrome测试 中文输入法 每次按键盘,能触发onkeydown 不过不能获取到按键的 charCode keyCode。 获取到的是229

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧