用JavaScript动态地修改一个input值时的onchange问题

rmn190 2010-09-17 03:53:25
项目中遇到一个问题。如代码所示,当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事件?
...全文
455 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rmn190 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mrslin 的回复:]
onchange事件只有在获取焦点,内容改变,失去焦点之后才会触发。但是有的时候内容是通过js脚本改变的,此时不会触发该事件。这个时候可以用onpropertychange,元素的任何属性改变,如value、css属性等,都会触发该事件。当只需要绑定某一属性,如value的改变时,可以使用如下方法: 绑定的函数: function(event){ if(event.propertyName=="v……
[/Quote]


多谢!

有IE中,可以,chrome浏览器中不行。 请问jQuery有这个方法没?好像没有, 我没找到。
MrSLin 2010-09-17
  • 打赏
  • 举报
回复
onchange事件只有在获取焦点,内容改变,失去焦点之后才会触发。但是有的时候内容是通过js脚本改变的,此时不会触发该事件。这个时候可以用onpropertychange,元素的任何属性改变,如value、css属性等,都会触发该事件。当只需要绑定某一属性,如value的改变时,可以使用如下方法: 绑定的函数: function(event){ if(event.propertyName=="value") /*...*/ }
kongxh1218 2010-09-17
  • 打赏
  • 举报
回复
onchange事件只有在input得到焦点 -> 内容变化 -> 失去焦点 才会触发(测试了一下)
你用js改变了input的值,不会触发onchange事件。
为什么不在给input赋值之后调用一下onchange的函数呢
sohighthesky 2010-09-17
  • 打赏
  • 举报
回复
程序修改的只能用onpropertychange 和watch,
不过不能兼容所有浏览器和情况,大概
可以参考这个:http://topic.csdn.net/u/20100107/10/2d019f0b-bd6a-4c83-aab0-6ed9856f3777.html

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧