MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          jquery自動完成

          Posted on 2008-05-07 14:16 leekiang 閱讀(3575) 評論(0)  編輯  收藏 所屬分類: jquery(進去而已)
          以下寫得很零碎,純粹是備忘
          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大體上按下面的順序
          (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.jpgff2.jpg
          其中downup-up-是輸入法切換時的鍵盤事件
          輸入第一個字母時產生down-press事件,然后輸入任何字母都不會產生鍵盤事件, 只有按確認輸入的鍵了,例如按space或是1,才會執行up事件,見右圖。
          也就是說錄入一次中文時,不管中間過程怎么樣,整個的鍵盤事件只有3個:down-press-up
          (注:以上說的鍵盤事件都是指發生在input上的)
          2,IE
          IE1.jpgIE2.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.javaeye.com/topic/191555

          另:IE中onpropertychange時要用event.propertyName?? ==?? "value"
          document.getElementById('tt').attachEvent('onpropertychange',function(e){
          ????????
          for(var?item?in e){
          ????????????alert(item
          +":"+e[item]);//遍歷可看到propertyName
          ????????}
          ????});

          ? 判斷表單里的元素的值有沒有發生變化:? ???
          <script>
          ????jQuery(document).ready(
          function(){
          ??????? var?inputarr?=document.getElementsByTagName("INPUT");//TEXTAREA,SELECT等都可以這樣用
          ????????
          for(var?i=0;i<inputarr.length;i++){
          ????????inputarr[i].attachEvent('onpropertychange',
          function(e){
          ???????
          if(e.propertyName!='value')return;??//不是value改變不執行后面的操作
          ???????else{ischanged=true}
          ????});
          ????}
          });
          ????
          </script>
          奇怪的是先jQuery,再each,再用$(this).get(0).attachEvent("onpropertychange",fn); 好像不可以
          還有
          $("textarea").bind('propertychange',function(e) {
          e.preventDefault();
          // Your code here
          });好像也不行

          主站蜘蛛池模板: 桂阳县| 日照市| 德阳市| 长白| 凌源市| 镇沅| 正阳县| 积石山| 金乡县| 渭南市| 沭阳县| 禹州市| 营口市| 巢湖市| 安陆市| 宁乡县| 永顺县| 简阳市| 汉阴县| 威远县| 监利县| 东海县| 汪清县| 循化| 丽水市| 射阳县| 徐州市| 吐鲁番市| 文安县| 武邑县| 马尔康县| 什邡市| 兴城市| 浠水县| 读书| 潮州市| 合阳县| 镇原县| 永定县| 兴业县| 彰化市|