我有一个select2
select元素,我正在通过jQuery设置其值
$("#select2").val(elment_id).trigger('change');
但是,我已经定义了一个onchange事件处理程序。
$('#select2').on('change', function(e) {
//TODO
});
我只想更改(设置)select2
的值而不触发更改事件。你知道怎么做吗?
答案 0 :(得分:1)
有一个特殊的事件可以刷新它:
$("#select2").val(elment_id).trigger('change.select2');
来自文档:
其他组件通常会监听更改事件, 或附加可能带有侧面的自定义事件处理程序 效果。要将范围限制为仅将更改通知给Select2,请使用 .select2事件命名空间:
$('#mySelect2').val('US'); // Change the value or make some change to the internal state $('#mySelect2').trigger('change.select2'); // Notify only Select2 of changes
答案 1 :(得分:1)
您可以使用Jquery
扩展名创建这样的新原型
$.fn.extend({
Val: function(a) {
$(this).val(a).trigger('change');
}
})
$('#select2').Val(1)
答案 2 :(得分:0)
这取决于您何时要更改select元素中的值。这取决于其他因素吗?如果要在选择元素更改时触发事件,但又不想触发已定义的“ onchange”操作,则可以选择下一个唯一的类,并为该类构建下一个“ onchange”事件。但是,正如我之前说的,我不知道您要实现什么目标,很难说哪种解决方案是最好的