javascript - 使用 JavaScript 或 JQuery 模拟用户点击

标签 javascript jquery html jsp

我想模拟用户点击一个网站。在这个网站中,有以下 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/

相关文章:

javascript - 带分隔符的手机号码字段

javascript - 使 'this' 关键字引用调用对象(javascript)

jquery - 轻量级/快速 jQuery 模态窗口

javascript - 如何使用jquery排除子元素选择器中的子元素?

javascript - 如何在 php 页面中显示 javascript

javascript - jquery ajax 没有将数据传递给 php?

javascript - Foundation - 淡出之前淡入的叠加层?

javascript - 检测鼠标是否在 Canvas 内的对象上

html - 如何在不破坏整个页面外观的情况下将边框应用于 facebook 页面的所有元素 [悬停时]

html - 如何将行内 block 中的这些链接对齐到顶部?