项目中遇到一个问题。如代码所示,当value1的值改变后,想通过value2的onChange事件alert下。当然实际情况中,比这个要复杂的多,这里只是为了说明问题只提出了问题的核心部分。
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<input type="text" maxlength="20" value="12"  id="value1" class="text medium" />
<input type="text" maxlength="20" value="14"  id="value2" class="text medium"/><script>

$("#value1").change(function(){
$("#value2").val($(this).val());

});

$("#value2").change(function(){
alert("new value: " + $(this).val());

});

</script>
    
难道是用程序修改value2的值后,不会触发onChange事件?

解决方案 »

  1.   

    程序修改的只能用onpropertychange 和watch,
    不过不能兼容所有浏览器和情况,大概
    可以参考这个:http://topic.csdn.net/u/20100107/10/2d019f0b-bd6a-4c83-aab0-6ed9856f3777.html
      

  2.   

    onchange事件只有在input得到焦点 -> 内容变化 -> 失去焦点 才会触发(测试了一下)
    你用js改变了input的值,不会触发onchange事件。
    为什么不在给input赋值之后调用一下onchange的函数呢
      

  3.   

    onchange事件只有在获取焦点,内容改变,失去焦点之后才会触发。但是有的时候内容是通过js脚本改变的,此时不会触发该事件。这个时候可以用onpropertychange,元素的任何属性改变,如value、css属性等,都会触发该事件。当只需要绑定某一属性,如value的改变时,可以使用如下方法: 绑定的函数: function(event){ if(event.propertyName=="value") /*...*/ } 
      

  4.   

    多谢!有IE中,可以,chrome浏览器中不行。 请问jQuery有这个方法没?好像没有, 我没找到。