select2小部件无法以编程方式更新所选值

时间:2013-04-21 12:13:05

标签: angularjs jquery-select2

使用angular,select2小部件。 我在HTML中声明它是这样的:

<div>
    <select id = "dropdown"
       ...
       <option value = "1" id="1">1</option>
       <option value = "2" id="2" >2</option>
       <option value = "3" id="3"" >3</option>
    /select>
</div

并希望以编程方式更改所选项目(从另一个函数调用)。

调用代码时:

 $("#dropdown").select2().select2('val', "3")

我可以看到下拉列表中的值发生了变化,但是当实际访问下拉列表的模型属性时(要获取所选项目),它未设置为我尝试将其设置为的值。

当检查下拉列表的onChange事件时,我可以看到e.val未定义。

请参阅下一个小提琴作为示例(点击链接后,我不认为在警告框中显示“未定义”):http://jsfiddle.net/kcArV/1/

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:2)

应该是

$('#attribute').select2().on('change', function(e) {
    alert($(this).val());    
});

e是事件对象,而不是select控件,方法context this指向select元素,因此您可以调用.val()来获取所选值

演示:Fiddle