好像是不行,建议onchange函数里的事情写在onkeyup和onafterpaste中去。

解决方案 »

  1.   

    我测试应该是 onkeyup="this.value=this.value.replace(/\D/g,'') 这句话的关系。因为首先执行的是 onkeyup事件 这句话是把非数字形的值 删除掉 在付值给 文本框。。所以无论你怎么写 最后执行 onchange事件都是不会执行的,这个时候文本框已经出于不改变状态。我这个理解不知道对不对!所以他不会执行 onchange事件!
      

  2.   

    在改变字符并且失去焦点的时候才触发onchange
      

  3.   

    onchange换成onpropertychange的话就可以了
      

  4.   

    1.用js改变input的值,不会触发onchange;
    2.在IE里,楼主想要的代码可能是这样的:<INPUT maxLength=20 name=fBindCard  value="3" onchange="alert('test');" onkeyup="this.createTextRange().text=this.value.replace(/\D/g,'')" /> 
    3.楼主的代码会打乱用户的光标,建议这样的验证写在onblur里。
      

  5.   

    onchange只有在onblur的时候才会执行
    另外js修改值不触发onchange事件,建议,你在赋值之后手工执行onchange中的方法
      

  6.   

    onpropertychange只支持IE,在FOXFIRE下还不知道怎么解决呢