以下写得很零碎,纯粹是备忘
1,
(1)如果用keydown,用中文输入法时在输入框里输汉语拼音的字母就会有感知,故只能用keyup
(2)后退问题.
如何区分是在中文输入法的输入框里的后退,还是自动完成录入框里的后退,二者的处理是不一样的。
(3)确认键
光标在form里时,按确认键浏览器会自动提交。而我想要的是一按确认键,自动录入选中的那一项。
如何在按确认键时不让form截获这个事件。要做成通用的,而不是在每一个form里写死。
(4)调试时慎用alert
alert然后确定时会自动执行blur,会影响的原来程序的执行次序
2,插件
(1) http://code.google.com/p/jqac/ 不错
(2)http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete 很好很强大
(3) http://www.dyve.net/jquery/?autocomplete 有遮盖select box功能
(4)http://docs.jquery.com/Plugins/AutoComplete
(5)http://mabp.kiev.ua/content/2008/04/08/autocomplete_by_your_own_hands
(6) http://www.pengoworks.com/workshop/jquery/autocomplete.htm
(7)http://huacn.blogbus.com/logs/19643985.html
测试鼠标事件和键盘事件在IE和FF下的执行次序,同时测试在中文输入法下的执行次序
(1)对key 来说 : keydown-->keypress-->keyup
如果持续按住键位,keydown会持续执行;
如果要阻止按键的默认行为,必须使用keypress(用return false),但按backspace时不行,因为backspace时只执行keydown和keyup,keyup之前回退的效果已经生效了。
(2)对mouse来说 : mousedown-->mouseup-->click ,在IE下如果在与按下鼠标的相同元素上松开则产生click事件, 如果松开时已经离开最初按下时的元素了,则不会产生click事件;但据我观察FF下不是这样,FF下无论鼠标是否在最初的元素上松开,都会产生click事件。
在中文输入法模式下:
(1)FF
其中downup-up-是输入法切换时的键盘事件
输入第一个字母时产生down-press事件,然后输入任何字母都不会产生键盘事件, 只有按确认输入的键了,例如按space或是1,才会执行up事件,见右图。
也就是说录入一次中文时,不管中间过程怎么样,整个的键盘事件只有3个:down-press-up
(注:以上说的键盘事件都是指发生在input上的)
2,IE
其中downup-up-也是输入法切换时的键盘事件
然后在输入法框里的所有按键都产生一对downup事件,包括回退和确认都是。
无论光标在input还是在输入法框按回退,都是down-up
用style.imeMode好像无法得到当前text的输入法模式
(http://topic.csdn.net/t/20040908/13/3351801.html)
http://www.hihiyou.com/?p=5
http://realazy.org/blog/2007/10/31/solution-of-keyup-failing-when-ime-is-on/
http://topic.csdn.net/t/20040714/21/3175529.html
http://www.iteye.com/topic/191555
onpropertychange时用event.propertyName == "value"
1,
(1)如果用keydown,用中文输入法时在输入框里输汉语拼音的字母就会有感知,故只能用keyup
(2)后退问题.
如何区分是在中文输入法的输入框里的后退,还是自动完成录入框里的后退,二者的处理是不一样的。
(3)确认键
光标在form里时,按确认键浏览器会自动提交。而我想要的是一按确认键,自动录入选中的那一项。
如何在按确认键时不让form截获这个事件。要做成通用的,而不是在每一个form里写死。
(4)调试时慎用alert
alert然后确定时会自动执行blur,会影响的原来程序的执行次序
2,插件
(1) http://code.google.com/p/jqac/ 不错
(2)http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete 很好很强大
(3) http://www.dyve.net/jquery/?autocomplete 有遮盖select box功能
(4)http://docs.jquery.com/Plugins/AutoComplete
(5)http://mabp.kiev.ua/content/2008/04/08/autocomplete_by_your_own_hands
(6) http://www.pengoworks.com/workshop/jquery/autocomplete.htm
(7)http://huacn.blogbus.com/logs/19643985.html
测试鼠标事件和键盘事件在IE和FF下的执行次序,同时测试在中文输入法下的执行次序
<
script
>
function $(id){ return document.getElementById(id);}
</ script >
< input onmousedown ="$('d').value=$('d').value+'down'" onmouseup ="$('d').value=$('d').value+'up'"
onclick ="$('d').value=$('d').value+'click'" >< br >
< input onkeydown ="$('d').value=$('d').value+'down';" onkeyup ="$('d').value=$('d').value+'up-'"
onkeypress ="$('d').value=$('d').value+'press';" >< br >< br >< br >< br >
< input id ='d' size =100 >
你会发现,在非中文输入法模式下,IE和FF大体上按下面的顺序
function $(id){ return document.getElementById(id);}
</ script >
< input onmousedown ="$('d').value=$('d').value+'down'" onmouseup ="$('d').value=$('d').value+'up'"
onclick ="$('d').value=$('d').value+'click'" >< br >
< input onkeydown ="$('d').value=$('d').value+'down';" onkeyup ="$('d').value=$('d').value+'up-'"
onkeypress ="$('d').value=$('d').value+'press';" >< br >< br >< br >< br >
< input id ='d' size =100 >
(1)对key 来说 : keydown-->keypress-->keyup
如果持续按住键位,keydown会持续执行;
如果要阻止按键的默认行为,必须使用keypress(用return false),但按backspace时不行,因为backspace时只执行keydown和keyup,keyup之前回退的效果已经生效了。
(2)对mouse来说 : mousedown-->mouseup-->click ,在IE下如果在与按下鼠标的相同元素上松开则产生click事件, 如果松开时已经离开最初按下时的元素了,则不会产生click事件;但据我观察FF下不是这样,FF下无论鼠标是否在最初的元素上松开,都会产生click事件。
在中文输入法模式下:
(1)FF
![ff1.jpg](/images/blogjava_net/leekiang/ff1.jpg)
![ff2.jpg](/images/blogjava_net/leekiang/ff2.jpg)
其中downup-up-是输入法切换时的键盘事件
输入第一个字母时产生down-press事件,然后输入任何字母都不会产生键盘事件, 只有按确认输入的键了,例如按space或是1,才会执行up事件,见右图。
也就是说录入一次中文时,不管中间过程怎么样,整个的键盘事件只有3个:down-press-up
(注:以上说的键盘事件都是指发生在input上的)
2,IE
![IE1.jpg](/images/blogjava_net/leekiang/IE1.jpg)
![IE2.jpg](/images/blogjava_net/leekiang/IE2.jpg)
其中downup-up-也是输入法切换时的键盘事件
然后在输入法框里的所有按键都产生一对downup事件,包括回退和确认都是。
无论光标在input还是在输入法框按回退,都是down-up
用style.imeMode好像无法得到当前text的输入法模式
(http://topic.csdn.net/t/20040908/13/3351801.html)
http://www.hihiyou.com/?p=5
http://realazy.org/blog/2007/10/31/solution-of-keyup-failing-when-ime-is-on/
http://topic.csdn.net/t/20040714/21/3175529.html
http://www.iteye.com/topic/191555
onpropertychange时用event.propertyName == "value"