我试图以编程方式清除使用奇妙Select2库的下拉菜单。下拉菜单使用Select2 query
选项动态填充远程ajax呼叫。使用jQuery Select2清除下拉菜单
HTML:
<input id="remote" type="hidden" data-placeholder="Choose Something" />
的Javascript:
var $remote = $('#remote');
$remote.select2({
allowClear: true,
minimumInputLength: 2,
query: function(options){
$.ajax({
dataType: 'json',
url: myURL + options.term,
error: function(jqXHR, textStatus, errorThrown){
smoke.alert(textStatus + ": server returned error on parsing arguments starting with " + options.term);
},
success: function(data, textStatus, jqXHR){
var results = [];
for(var i = 0; i < data.length; ++i){
results.push({id: data[i].id, text: data[i].name});
}
options.callback({results: results, more: false});
}
});
}
});
不幸的是,在调用$remove.select2('val', '')
抛出以下异常:
Uncaught Error: cannot call val() if initSelection() is not defined
我已经尝试设置attr
,设置val
,text
和Select 2具体data
功能。看起来似乎无法让这个人清醒,并像一个方式在一个单选按钮上工作。任何人都有建议?
您是否尝试查找元素,然后执行'.remove()'? –
@EH_warch我不想删除Select2本身,只是清除已设置的值。 – wheaties
我不会删除整个select2,但元素。也许像'$('。itemSelected')。remove()'?或者你的意思是喜欢做'$ remote.empty()'? –