jQuery .val()没有做出“改变”

时间:2015-07-29 13:07:35

标签: javascript jquery html css testing

我在测试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就在那里。身体应该能够找到它并且应该执行该功能。

有人可以告诉我,为什么它不起作用?

2 个答案:

答案 0 :(得分:6)

使用JavaScript更改值不会触发事件,您需要手动触发它。 jQuery通过.trigger(eventName)

轻松实现
$('#activityType').val("33").trigger("change");

答案 1 :(得分:2)

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

:on => update事件用于将用户类型输入到输入中。

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

change