日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文本框的属性监测

發布時間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文本框的属性监测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前很簡單的認為對input的value監測就用2個事件可以搞定兼容性,知道我看了司徒正美的這篇博客,還是感慨自己不夠深入,接觸的太少。

  對于IE全系列,可以采用onpropertychange屬性監測

  對于 gte?IE9 和W3c瀏覽器,則通過input事件進行監測。

  但是IE9的兼容性可能會出現問題。

  oninput?事件在用戶輸入、退格(backspace)、刪除(delete)、剪切(ctrl?+?x)、粘貼(ctrl?+?v)及鼠標剪切與粘貼時觸發(在?IE9?中只在輸入、粘貼、鼠標粘貼時觸發)。

  onpropertychange?事件在用戶輸入、退格(backspace)、刪除(delete)、剪切(ctrl?+?x)、粘貼(ctrl?+?v)及鼠標剪切與粘貼時觸發(在?IE9?中只在輸入、粘貼、鼠標粘貼時觸發)(僅?IE?支持)。

?  所以可以這樣實現。

  

input = document.getElementById('input');if(input.addEventListener){input.addEventListener('input',fn,false); }else{input.attachEvent('onpropertychange',function(e){
   if(e.propertyValue == 'value'){
    fn();
    }
  }); }
if(window.VBArray && window.addEventListener && !window.WebSocket){input.addEventListener('keyup',function(e){var code = e.keycode || e.charcode;if(code==8 || code==46){fn();} },false) ;input.oncut=function(){fn()}; }

?  另外,如果對不僅僅對文本內容進行監聽,而且要相應修改,那么對于實現input事件的瀏覽器而言,沒什么

問題,而對于IE的propertychange事件,則應該有所注意--為了避免循環處罰該事件,需要在修改屬性之前將onpropertychange

處理程序取消,屬性修改完畢之后重新賦值:

  下面是一個簡單的強制輸入大寫字母的demo,來源自David Flanagan

  

1  function forceToUpperCase(element) { 2 if (typeof element === "string") element = document.getElementById(element); 3 element.oninput = upcase; 4 element.onpropertychange = upcaseOnPropertyChange; 5 6 // Easy case: the handler for the input event 7 function upcase(event) { this.value = this.value.toUpperCase(); } 8 // Hard case: the handler for the propertychange event 9 function upcaseOnPropertyChange(event) { 10 var e = event || window.event; 11 // If the value property changed 12 if (e.propertyName === "value") { 13 // 避免循環觸發事件 14 this.onpropertychange = null; 15 // Change the value to all uppercase 16 this.value = this.value.toUpperCase(); 17 // 重新添加處理函數 18 this.onpropertychange = upcaseOnPropertyChange; 19 } 20 } 21 }

?

轉載于:https://www.cnblogs.com/accordion/p/4110696.html

總結

以上是生活随笔為你收集整理的文本框的属性监测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。