当前位置: 首页 > 知识库问答 >
问题:

从下拉菜单中选择带有脚本的选项时,Ajax调用不会触发

段干华皓
2023-03-14

尝试做一个chrome扩展来自动化我的工作中的一些日常琐事。所以这个站点有一个标准的下拉输入,如下所示。

<select id="branchList">
    <option value="3">KATHMANDU</option>
    <option value="18">DELHI</option>
    <option value="24">BEIJING</option>
</select>

当我手动单击其中一个选项时,它会触发一个ajax调用,并用新数据加载页面的部分。但如果我以编程方式尝试选择该选项,它不会触发ajax调用。下面是我用来选择一个选项的代码,它选择了该选项,但没有像预期的那样触发ajax调用。

document.querySelector("#branchList").value = "18"
document.querySelector("#branchList").options[1]

编辑-按照注释中的建议使用dispatchevent

var elem = document.querySelector("#branchList").options[1]
let event = new Event("click");
elem.dispatchEvent(event);

共有1个答案

梁浩涆
2023-03-14

您需要触发更改事件。

var select = document.getElementById('branchList')


select.addEventListener('change', () => {
  console.log('change')
  //here should be the ajax call
})

function changeSelectValue(num){
 
  select.value = num
  select.dispatchEvent(new Event('change'));
}

changeSelectValue(18)
<select id="branchList">
    <option value="3">KATHMANDU</option>
    <option value="18">DELHI</option>
    <option value="24">BEIJING</option>
</select>
 类似资料:
  • 问题内容: 我想知道是否有可能让jQuery 在下拉框中选择,例如第4个项目? 我希望用户单击一个链接,然后让该框更改其值,就像用户通过单击来选择它一样。 问题答案: 怎么样 对于现代版本的jquery,应使用代替

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。一切都很好,除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我最好地完成了将“选择”框设置为特定宽度的操作,但是下拉菜单本身的宽度要大得多。 任何对此

  • 我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!

  • 问题内容: 我试图使用AngularJS创建一个链接/级联的下拉列表(选择元素),但是我很难用我的对象属性过滤和更新“ selected”属性。 首次加载页面时,所选项目将被过滤并正确显示在下拉菜单中。更改父级下拉菜单后,子级选择项不会抓住已过滤列表中的第一个项,导致子级下拉项不会更新。 任何见解将不胜感激,请注意,我将父/子/孙子数组分开(而不是在子数组中),因为最终我将从SQL中的单独spoc

  • 我是使用selenium ide的新手。 我已经让我的代码的所有其他部分工作。 但是我目前有一个问题,让它在下拉菜单中选择一个选项。 我为下拉列表和

  • 我正在制作一个收银机类型的程序。我已经通过在输入字段中键入并按下“添加”按钮,将项目添加到下拉列表中。现在我试图给我在下拉框中选择的项目一个值。例如,我将“苹果”添加到列表中,从下拉框中选择它,在输入字段中键入价格,然后通过按下按钮将输入字段中的内容分配给“苹果”。以下是我已经走了多远: