关于jQuery中给input赋值,手动触发它的change事件却没反应的问题

我在js文件中,通过$(parent.frames[“commonViewContent”].contentDocument).find("[name=‘inputName’]");拿到了我要赋值的input。

var $commonViewContent=$(parent.frames["commonViewContent"].contentDocument);
var $input = $commonViewContent.find("[name='inputName']");
$input.val(value);
$input.trigger("change");

我一开始是这么写的,给input赋完值后,给input手动触发change事件,按道理应该没问题的,但没用!
然后我试了其他方法,比如用onpropertychange和oninput,或者用focus和blur,甚至把它们一起用,但是都没有效果,我百思不得其解,上百度找也找不到解决的办法。
直到我问我一同事,他告诉我,我获取的input所在的页面和这个js文件所在的页面不是同一个页面。这个时候我才反应过来。
。。。。。。
。。。。。。

我说我怎么设置都不管用!!!
在这里插入图片描述

因为不是同一个页面的话,用js文件里的“$”对象,是获取不到另一个页面中的input的事件的,所以不管我怎么设置都没反应。

要想给input赋值后再手动触发它的事件的话,要先获取到input所在页面的"$“对象,然后再通过这个”$"对象获取到的input才是可以触发事件的input。

因为input所在的页面和js文件所在的页面都是同一个父窗口,所以要获取到它的"$"对象就很简单了。

//父窗口中找到input所在的子窗口,通过contentWindow获取子窗口里的内容,这些内容里面就包含了"$"。
var $c = parent.frames["commonViewContent"].contentWindow.$;
$c("[name='inputName']").trigger("change");

这样就可以触发了!(就这?就这?就这?就这浪费我一天时间。。。我 直接泪奔.jpg)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

符华-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值