【问题标题】:How can I choose a select option in jQuery as though it were clicked with the mouse?如何在 jQuery 中选择一个选择选项,就好像它是用鼠标单击的一样?
【发布时间】:2014-01-21 04:23:05
【问题描述】:

我正在构建一个搜索工具,其中包含通过 AJAX 填充选项的各种选择下拉列表。填充的可能选项基于在前面的选择下拉列表中选择的选项。出于此工具的目的,我希望隐藏第一个选择框,但仍需要在该框中选择一个选项,以便触发下一个框上的 AJAX 调用,这应该是由于“ onchange”事件。

我已经尝试了各种不同的代码来模拟特定选项的鼠标单击选择,但是,虽然我可以选择该选项,但它仍然没有正确触发事件以触发以下 AJAX 调用选择。这是据我所知:

jQuery('#form select').first().val('the-value').trigger('click').trigger('change');

从我读过的所有内容来看,这应该设置选项值并触发更改事件,就像单击选项一样。尽管如此,这还是行不通。谢谢!

【问题讨论】:

  • 您的change 函数是否高于此调用?
  • @CarlMarkham 这是我认为的问题,因为在我正在编辑的脚本文件之后必须运行的插件中单独调用了更改函数。我整天都在为此苦苦挣扎- 非常感谢您的帮助!

标签: javascript jquery html ajax


【解决方案1】:

您只需要使用 val(),就像任何其他字段一样...

$("select").val("2").change();

http://jsfiddle.net/Loenix34/3LbjY/

我们也使用 change() 来调用相关事件。

【讨论】:

  • 我认为这很接近,但仍然不允许我对后续选择产生影响,就好像我点击了它一样。这是我正在尝试做的一个非常基本的示例([链接]jsfiddle.net/maniacaldesign/57Wf7)。我希望设置初始选择,并作为选择值在第一个更改的条件,以便第二个值切换到 5 也被触发。那有意义吗? @Loenix
  • 哦,我明白了 - 根据上面 Cark Markham 的说明 - 我没有上面的更改函数调用(因为它实际上是在通过 php 调用的单独插件文件中调用的。我现在明白了 - 谢谢寻求帮助!@Leonix
【解决方案2】:

不是设置select的值,而是设置给定选项的selected属性,然后触发更改。

$("option[value='the-value']").prop('selected', true);
$("#form select:first").change();

Fiddle Demo

【讨论】:

    猜你喜欢
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多