我的页面上有一个select2,其中包含以下onchange事件:
$("#product_menu_category_id").on("change", function(e) {
$.ajax( {
url: '/product_prices',
data: {id: e.val, product_id: <%= @product.id %> },
success: function(data){ data }
})
})
并使用follow helper函数在测试期间设置一个值:
def set_select2_value(index, id, value)
"$('.select2-container').each(function(index) {if (index == " + index.to_s + ") $(this).select2('data', {id: '" + id.to_s + "', text: '"+ value + "'})});"
end
这适用于没有连接到它们的onchange触发器的所有select2控件。
如何在我的RSpec(水豚)测试期间设置值,并触发任何onchange事件(如果有的话)?
答案 0 :(得分:0)
终于找到了这样做的方法,你需要使用{triggerChange:true})并在off屏幕上选择设置值,而不是select2:
"$('select.select2-offscreen').each(function(index) {if (index == " + index.to_s + ") $(this).select2('val', '" + id.to_s + "', {triggerChange:true}); });"