コードは以下の通りです: (元々はプロトタイプをベースにカプセル化していましたが、完全にコード量が増えてしまったことが判明したので元に戻しました) 貼り付け時に問題を提起してくれたsparks345に感謝します。 この場合、追加できるイベントは、onpropertychange、oninput、obj.watch("value",function(id,oval,nval){}) だけです。入力の追跡の詳細については、ここを参照してください。値の変更と互換処理 入力バイト数を制限する #div1 {width:500px;margin:20px auto;} #div1 ul {list-style-type:decimal;line-height:25px;} 5 バイトを入力できます: 6 バイトを入力できます: 7 バイトを入力できます: n バイトを入力できます: [Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して実行する必要があります ] /*! *author:sohighthesky *Date:2010-1-16 */ !function(){ var len=function(s){//获取字符串的字节长度 s=String(s); return s.length+(s.match(/[^\x00-\xff]/g) ||"").length;//加上匹配到的全角字符长度 }, limitDo=function(limit){ var val=this.value; if(len(val)>limit) { //val=val.substr(0,limit); while(len(val=val.substr(0,val.length-1))>limit); this.value=val; } },$=function(id){return typeof(id)==='string'?document.getElementById(id):id;}; $("txt1").onkeyup=function(){limitDo.call(this,5)}; $("txt2").onkeyup=function(){limitDo.call(this,6)}; $("txt3").onkeyup=function(){limitDo.call(this,7)}; }(); ソース: http://www.cnblogs.com/sohighthesky/