html:
<input type="text" id="onlyNum" />javascript:
var o=document.getElementById("onlyNum");
o.onblur=function(){
  var reg=/^\d+$/g;
  if(!reg.test(this.value)){
    alert("此处只可以输入整数");
    this.focus();
  }
};

解决方案 »

  1.   

    <input type="text" id="tt" onkeyup="this.value=this.value.replace(/^0+/,'')" style="ime-mode: disabled;">
    <script type="text/javascript">
        document.getElementById("tt").onkeydown=function(e){
            e=e||window.event;
            var k=e.keyCode|| e.which;
            if(k>47&&k<58&&!e.shiftKey||k>95&&k<106||k==8||k==46||k==37||k==39){
                return !0;//按0123456789 backspace delete <--  -->
            }else{
                return !1;
            }
        };
    </script>
      

  2.   

        $("input:text").keyup(function () {
            var val = $.trim($(this).val());
            var reg = /^\d+$/;
            if (!reg.test(val)) {
                $(this).val(val.replace(/[^\d]+/g, ""));
            }
        })
      

  3.   

    不明白你的意思,你也许也没明白我的意思。我是说比如我先在文本框里输入了一个整数112233,然后我想修改这个整数为332233,可是把文本框的值全部删除重新输入有些麻烦,我想使用方向键移动到11后使用退格键删除,然后焦点还是停留在已删除的数字11的后边,再输入33,如何实现?这个只要不输入非数字的字符,就不会改变焦点,完全可以用方向键移动和用退格键删除
    <input type="text" onkeyup="cky(this)" />
    <script type="text/javascript">
    function cky(obj)
    {
    var t = obj.value.replace(/\D/g,"");
    if(obj.value!=t)
    obj.value=t;
    }
    </script>