从Firefox / Chrome控制台

时间:2016-05-20 16:02:14

标签: javascript html drop-down-menu

我正在学习javascript(使用浏览器的firebug控制台),并且在输入命令时无法理解如何激活更改。

例如,一个网站的下拉框名称为“mvprodvaronetimeorder”,其中包含以下几个选项: IpA-Q-Q,IpQ-Q-Q,Ipw-Q-Q ......我可以使用该命令获得第3个值:

    document.getElementsByName("mvprodvaronetimeorder")[0].value="Ipg-Q-Q"; 

但是,当我从下拉框中选择相应的值时,它不会激活相同的操作(显示另一个下拉列表以供选择)。然后,我无法与第二个下拉框和其他事情进行交互。

当我尝试使用如下命令填充文本框时会发生同样的事情:

            document.getElementById("luckyme")[0].value="You are lucky"; 

虽然它发生了变化,但是当我点击提交按钮时更改没有反映出来,它要求我复制粘贴或至少点击该文本框以激活更改。

有没有人可以建议我如何从控制台自动化该过程?

1 个答案:

答案 0 :(得分:1)

在JavaScript中分配值会更新选择,但它不会通知在该页面上运行的代码。

要使页面对更改做出反应,您还需要在下拉列表中触发更改事件:

var el = document.getElementsByName("mvprodvaronetimeorder")[0];
el.value = "Ipg-Q-Q"
el.dispatchEvent(new Event("change"))

然后页面知道选择已更改,并显示下面的新下拉列表。

要了解元素正在侦听哪些事件,您可以使用getEventListeners

getEventListeners(document.getElementsByName("mvprodvaronetimeorder")[0])
// Object {change: Array[1]}