我想模拟用户点击一个网站。在这个网站中,有以下 div,我们称之为 div1,其中有一个下拉菜单。实际上还有另外两个类似的 div(我们称它们为 div2 和 div3),但为了简单起见我没有放在这里。当您在 div1 的下拉菜单中选择其中一个项目时,div2 会被启用(一开始默认禁用),并且它的菜单内容会根据 div1 中选择的项目从数据库中获取。
我可以使用以下脚本选择菜单项。
代码:
function setSelectedValue(selectObj, valueToSet) {
for (var i = 0; i < selectObj.options.length; i++) {
if (selectObj.options[i].value== valueToSet) {
selectObj.options[i].selected = true;
return;
}
}
}
var number = document.getElementById('level1-option');
setSelectedValue(number, "p3");
但是,当我这样做时,div2 永远不会启用。我尝试使用 jQuery 代码在下拉菜单上发出更改信号,但它不起作用。当我调试下面的html代码时,我看到那里有按钮标签,我立即认为它是在点击时提交的。但是,我没有看到任何形式。如果我使用 chrome 调试网站,我会发现当我在菜单中选择一个项目时,代码会跳转不同的 js 文件。谁能指导我如何找出选择某个项目时触发的信号?显然他们在网站上做了一些技巧来阻止正常的点击方式
代码:
<div data-custom-select="" class="custom-select focus">
<label for="level1-option" class="has-hidden-label label-text">Sections</label>
<span class="btn-select icon-down_thin">Choose a section</span>
<select class="categories-options" data-level="1" name="level1-option" id="level1-option" required="">
<option value="">Choose a section</option>
<option value="p1" data-href="/callback/discovery/p1/">P1</option>
<option value="p2" data-href="/callback/discovery/p2/">P2</option>
<option value="p3" data-href="/callback/discovery/p3/">P3</option>
<option value="p4" data-href="/callback/discovery/p4/">P4</option>
</select>
<span class="icon-down_thin"></span>
<button type="submit" class="category-submit ui-button-secondary ">Choose</button>
最佳答案
通常你可以使用:
$("#level1-option").val(valueToSet).trigger("click")
或
$("#level1-option").val(valueToSet).trigger("change")
但这可能取决于网页上的其余代码。
关于javascript - 使用 JavaScript 或 JQuery 模拟用户点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335522/