首页 文章

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

提问于
浏览
0

使用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未定义 .

请参阅下一个小提琴作为示例(点击链接后,我不想在警报框中获取"undefined"):http://jsfiddle.net/kcArV/1/

我有什么想法我做错了吗?

1 回答

  • 2

    它应该是

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

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

    演示:Fiddle

相关问题