模仿用户更改选择选项

时间:2014-03-28 08:08:30

标签: jquery javascript-events userscripts

我正在尝试处理用户访问我的网站时可能安装的一个用户脚本。由于它在沙盒中工作,我不能直接关闭一些干扰我网站的本机功能的用户脚本功能。因此,我唯一的选择是通过UI访问它们。首先,我需要更改一个特定的复选框。首先,我尝试使用jQuery的.val()方法,但它没有用。然后我这样做了:

if($('#someinput:checked').length) $('#someinput')[0].click();

然后它起作用,关闭了不需要的功能。下一个是<select>。只是.val()按预期没有帮助,所以我在更改值后立即触发了change事件:

$('select[name=someselect]').val(0);
$('select[name=someselect]')[0].change();

但它仍然无效。我想我需要以某种方式更恰当地触发change事件。我该怎么做?

2 个答案:

答案 0 :(得分:0)

您需要使用:

$('select[name="someselect"]').change();

而不是:

$('select[name=someselect]')[0].change();

因为$('select[name=someselect]')[0]返回一个DOM元素,而不是一个jQuery对象。

答案 1 :(得分:0)

我找到了解决方案here on SO

基本上据我所知,它可以正常触发所有本机事件,并且整齐地包装到jQuery插件中。