jquery通过另一个frame修改元素内容时,如何捕获变更事件change

Sunhk_25 2014-07-15 11:49:21
    <frameset rows="*,0" cols="70,30" frameSpacing="0" border="0" frameBorder="0">
<frame src="action" name="fullWin" />
<frame src="rewrite" name="rewriteWindow" />
</frameset>

我有这样一个frame,通过action中可以设置rewrite中元素(<input type="hidden" id=mb_sn value="">)的值。
action中的jquery:
$(document).ready(function() {
var mbSnObj = $(window.parent.rewriteWindow.document).find("#mb_sn");
mbSnObj.val("123");
mbSnObj.trigger("change");
});
问题是我在rewrite中无法捕获change事件,哪里有什么问题吗?
rewrite中的jquery:
$(document).ready(function() {
$("#mb_sn").change(function() {
alert("9999");
});
});
...全文
338 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-07-22
  • 打赏
  • 举报
回复

    $("#mb_sn").change(function() {
         alert("9999");
     });
改成
 $("#mb_sn").on("input propertychange", function () {
            alert("9999");
  });
Sunhk_25 2014-07-22
  • 打赏
  • 举报
回复
貌似不能跨frame触发事件。。。。
Sunhk_25 2014-07-16
  • 打赏
  • 举报
回复
现在的解决办法是通过setInterval每一秒去检查这个变量。 最理想的还是想通过frame间触发和捕获。。。。。
Sunhk_25 2014-07-15
  • 打赏
  • 举报
回复
引用 1 楼 u012463264 的回复:
$(document).ready(function() { var mbSnObj = $(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象 mbSnObj.val("123"); mbSnObj .change(function() { alert("9999"); }); mbSnObj.trigger("change"); });
你这种写法没有问题,但是我需要做的是触发事件跟捕获事件然后处理不在同一个文件里,alert("9999")的处理需要在rewrite中。
Sunhk_25 2014-07-15
  • 打赏
  • 举报
回复
引用 1 楼 u012463264 的回复:
$(document).ready(function() { var mbSnObj = $(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象 mbSnObj.val("123"); mbSnObj .change(function() { alert("9999"); }); mbSnObj.trigger("change"); });
我已经测试过了,取得成功并修改了mb_sn的值。
别闹腰不好 2014-07-15
  • 打赏
  • 举报
回复
$(document).ready(function() { var mbSnObj = $(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象 mbSnObj.val("123"); mbSnObj .change(function() { alert("9999"); }); mbSnObj.trigger("change"); });
Sunhk_25 2014-07-15
  • 打赏
  • 举报
回复
>>问题是 隐藏域 ,用脚本改变隐藏域的值不会触发他的改变事件。你用个文本框试试 ,就可以了。 我使用了事件触发器,正常的话隐藏字段也应该接受得到啊。 我按你的方法改成文本框后,frame间还是无法完成触发和捕获。 但是在同一文件rewrite中就可以正常完成触发和捕获。。。。。
别闹腰不好 2014-07-15
  • 打赏
  • 举报
回复
引用 3 楼 Sunhk_25 的回复:
[quote=引用 1 楼 u012463264 的回复:] $(document).ready(function() { var mbSnObj = $(window.parent.rewriteWindow.document).find("#mb_sn");//不知道你这里是否已经获取到对象 mbSnObj.val("123"); mbSnObj .change(function() { alert("9999"); }); mbSnObj.trigger("change"); });
你这种写法没有问题,但是我需要做的是触发事件跟捕获事件然后处理不在同一个文件里,alert("9999")的处理需要在rewrite中。[/quote] 问题是 隐藏域 ,用脚本改变隐藏域的值不会触发他的改变事件。你用个文本框试试 ,就可以了。

87,922

社区成员

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

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