点击按钮给文本框赋值时,onchange是不会触发的,上网找了一下,ie下可以用onpropertychange事件,但是其他浏览器则不行,有什么解决方案吗,oninput也只是复制粘贴有用,js赋值时还是不会触发

解决方案 »

  1.   

    非IE 用 defineSetter<input id="t1" onchange="f()" >
    <script>
       var t1= document.getElementById('t1');
     
       if(t1.__defineSetter__){
     t1.__defineSetter__('value',function(v){
      alert( 'change')
      return v;
     });
       }else{
         t1.onpropertychange=function(){
          alert( 'change')
         }
       }
     function f(){
       alert( 'change')
     }
     t1.value="xxxx"
    </script>
      

  2.   

    可以赋值的同时模拟触发onchange事件!
      

  3.   

    LZ可以尝试用以下方式为控件绑定文本变更事件:
    1. jQuery方式:   $("#txt").bind("change", function() {
           alert('changed');
       });
    2. 直接在控件上绑定   <input type='text' onchange="alert('changed');" />
    3. 通过原生JS绑定    document.getElementById("txt").onchange = function() {
            alert('changed');
        };
      

  4.   

    既然不起作用,为什么你赋值完后,不触发下 keyup 呢$("#ppt").val("a").keyup();
      

  5.   

    $(function () {$("#id").val("var");
    function1();var function1 =function(){alert("var")
    }});
      

  6.   

    既然不起作用,为什么你赋值完后,不触发下 keyup 呢$("#ppt").val("a").keyup();是这样的,是一个文本框,点击后跳出一个日期选择控件,是想选择完日期进行一些处理,你的意思是在控件的源码里添加keyup事件?
      

  7.   

    既然不起作用,为什么你赋值完后,不触发下 keyup 呢$("#ppt").val("a").keyup();是这样的,是一个文本框,点击后跳出一个日期选择控件,是想选择完日期进行一些处理,你的意思是在控件的源码里添加keyup事件?
    有何不可,改写一下日期控件也不难。