【问题标题】:jQuery .val() doesn´t make a 'change'jQuery .val() 不会做出“改变”
【发布时间】:2015-07-29 13:07:35
【问题描述】:

我在测试我的 JavaScript 时遇到问题。我的一部分测试看起来像

$('#activityType').val("33");
$('#favorite').click();

$('#activityType') 是一个选择字段,我想选择值为“33”的选项。现在我预计,这将是一个改变,所以我在我的程序中的功能就像

$('body').on('change', '.item-select', function() {
    var itemRow = $(this).parent().parent();
    changeBookableItemInputFields(itemRow);
});

将被执行。

$('#activityType') 有类属性item-select,所以我不明白,为什么$('#activityType').val("33"); 没有变化。我改变了值,css-attribute就在那里。主体应该能够找到它并且应该执行函数。

谁能告诉我,为什么它不起作用?

【问题讨论】:

  • 以编程方式更改元素值不会触发“更改”事件。你可以自己明确地做到这一点。

标签: javascript jquery html css testing


【解决方案1】:

使用 JavaScript 更改值不会触发事件,您需要手动触发它。 jQuery 使用 .trigger(eventName) 让这一切变得简单

$('#activityType').val("33").trigger("change");

【讨论】:

    【解决方案2】:

    使用trigger() 使用程序调用任何事件。

    change 事件用于用户输入输入。

    您可以在设置值后手动调用任何事件事件:

    $('#activityType').trigger("change");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 2016-06-04
      • 2010-12-01
      相关资源
      最近更新 更多