我正在尝试处理用户访问我的网站时可能安装的一个用户脚本。由于它在沙盒中工作,我不能直接关闭一些干扰我网站的本机功能的用户脚本功能。因此,我唯一的选择是通过UI访问它们。首先,我需要更改一个特定的复选框。首先,我尝试使用jQuery的.val()
方法,但它没有用。然后我这样做了:
if($('#someinput:checked').length) $('#someinput')[0].click();
然后它起作用,关闭了不需要的功能。下一个是<select>
。只是.val()
按预期没有帮助,所以我在更改值后立即触发了change
事件:
$('select[name=someselect]').val(0);
$('select[name=someselect]')[0].change();
但它仍然无效。我想我需要以某种方式更恰当地触发change
事件。我该怎么做?
答案 0 :(得分:0)
您需要使用:
$('select[name="someselect"]').change();
而不是:
$('select[name=someselect]')[0].change();
因为$('select[name=someselect]')[0]
返回一个DOM元素,而不是一个jQuery对象。
答案 1 :(得分:0)
我找到了解决方案here on SO:
基本上据我所知,它可以正常触发所有本机事件,并且整齐地包装到jQuery插件中。