如何在ajax成功函数后更新select2下拉菜单中的内容

时间:2013-10-09 08:22:05

标签: jquery ajax

我使用以下代码在ajax成功函数

之后更新select2下拉菜单中的内容
  $.ajax(
{
url:'test.php',
type: 'POST',
data:'start='+start,
success:function(e)
{
var response=e; 
$('#field-video-keywords #optkeywords option:last').after(response);
$("#field-video-keywords").select2('close');                                                        
  $("#field-video-keywords").select2('open');   


},
error: function()
{
alert('Error');                     
}
});

内容正在更新,但在下拉菜单关闭然后打开时可以看到更新。请帮我解决问题

更新 感谢有价值的回应, 我能够附加响应数据。但是当我向下滚动列表时,它会回到选择列表的顶部。我怎样才能克服这个问题

    $('#keywords ul.select2-results').scroll(function()
{
var div = $(this);
var keywordscount=$('#keywordscount').text();
var newkeywordscount = Number(keywordscount) + Number(20);
if (div[0].scrollHeight - div.scrollTop() == div.height())
{
$.ajax(
{
url:'test.php',
type: 'POST',
data:'start='+newkeywordscount,
success:function(e)
{                           
var response=e; 
$("#field-video-keywords").select2('close');
$('#field-video-keywords #optkeywords option:last').after(response);
$("#field-video-keywords").select2('open'); 
$('#keywordscount').html(newkeywordscount);
},
error: function()
{
alert('Error');                     
}
});
}
});

1 个答案:

答案 0 :(得分:1)

尝试将成功功能更改为:

success:function(e) {
    var response=e; 
    $("#field-video-keywords").select2('destroy');  
    $('#field-video-keywords option:last').after(response);                                                              
    $("#field-video-keywords").select2('');   
},

这应该用你的新项目重新创建select2。