【问题标题】:jQuery for force triggering onChange of select dropdownjQuery用于强制触发选择下拉列表的onChange
【发布时间】:2012-02-25 10:29:28
【问题描述】:

我想使用 jQuery 触发选择下拉菜单的 onChange 事件。我已使用以下方法将函数与 onChange 事件联系起来:$(element2).change(populateRelatedDropdowns); 当我手动更改选择控件的值时,它工作正常。但是当我想通过使用触发 onChange 时:$(entydd).trigger('change'); 它根本不起作用。

请帮助我。谢谢。

使用下拉列表连接事件的代码:

var element2 = document.createElement("select");
$(element2).change(populateAttrsDropdowns);


function populateAttrsDropdowns() 
{
//does something
}

到目前为止还算顺利。当我手动更改下拉值时有效。

现在,当我手动设置下拉菜单的选项值并希望触发 onChange 时,我有一个要求。下面的代码(在不同的函数中):

for (i = 0; i < customArray.length; i++) 
{
    $('#btnAdd').trigger('click');
    var entydd = (i+1) + ".enty"; //this is the name of my dropdowns..there are a couple
    document.getElementById(entydd).value = customArray[i].custom_value;
    $(entydd).trigger('change');
}

希望这个额外的代码部分有所帮助。

【问题讨论】:

  • 请在其上下文中显示给您带来问题的代码。
  • $(element2).trigger('change'); 不是$(entydd).trigger('change');
  • 代码太大,无法粘贴到这里。我正在编辑我的第一篇文章,以包含尽可能多的相关代码。
  • @mgraph :entydd 是我在不同功能中使用的。它指的是相同的选择下拉菜单。
  • @Heera:你的建议是改变选项本身的值,而不是选择的值,这是它的选定元素。而且,您应该使用 jQuery 来执行此操作:$("#select").val("optVal");,或者您所说的 $('#select:nth-child(i)').val(' newOptVal');

标签: jquery events triggers drop-down-menu onchange


【解决方案1】:

我觉得应该是的

$('#'+entydd).trigger('change');

【讨论】:

  • 无论你的错误是什么,但你必须使用 $('#'+entydd)。要使用 jquery 通过 id 选择元素,您必须使用 #。在您的代码中 var entydd = (i+1) + ".enty" 没有带有 id 的哈希。
  • 尝试记录console.log($('#'+entydd)) 看看它是否返回一个对象。
【解决方案2】:

尝试重写:

for (i = 0; i < customArray.length; i++) 
{
    var mySelect = $((i+1) + ".enty");
    var myVal = customArray[i].custom_value;
    mySelect.val(myVal);
}

我还没有测试过,但是(在选择上设置值)可能会触发更改事件,如果您通过 jquery 执行此操作,而不是纯 js。

如果它没有触发更改,您可以添加第二个调用:myChanged(mySelect,myVal)

【讨论】:

  • 据我所知,.val() 不会触发更改事件。 .val() 似乎也不适用于我的代码,这就是为什么我使用代码中描述的 document.getElementById().value=myvalue 的原因。
  • 我该怎么做?抱歉,我是新手。
  • 对不起,我添加了链接。您将相关的 html 复制到左上角,将您的 javascript 复制到左下角,然后在最左侧的选择中选择 jquery,然后您可以将其保存并在此处发布链接。确保您只包含给您带来麻烦的代码。很多时候,单独创建小提琴将帮助您解决它......
猜你喜欢
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多