我需要帮助删除FilteringSelect中的所有选项。
选择的Html代码:
<select id="kat" dojoType="dijit.form.FilteringSelect" style="width:170px; height: 22px;" name="form[kategorija]">
<option value="izbira">Izberi...</option>
<?php
$rezKat = $tabelaKategorij->dobiVseKategorije();
foreach($rezKat as $rowKat):
echo '<option id="optkat" value="'.$rowKat['id'].'">'.$rowKat['ime_kategorije'].'</option>';
endforeach;
?>
</select>
删除所有选项的功能
function izbrisiSeznam()
{
var j;
for (j = dojo.byId("kat").length - 1; j>=0; j--)
{
dojo.byId("kat").remove(j);
}
}
当我在...中调用此功能时。
$(document).ready(function () {
izbrisiSeznam();
});
然后完美运作。但是当我尝试在onSuccess中调用函数时,则无法识别selecet。
示例:
function dodajKategorijo()
{
var ime_kategorije = $('#ime_kategorije').val();
if(ime_kategorije!= '')
{
$.ajax({
type: "GET",
url: "<?php echo constant('REL_PATH'); ?>/admin/dodajkategorijo/",
dataType: 'json',
data:
{
id: ime_kategorije
},
success: function(data) {
var vsebina = '';
vsebina = '<div id="kategorija'+data.id+'" class="form-field clear">'+
'<label for="'+data.ime_kategorije+'" class="form-label size-80 fl-space2"> </label>'+
'<input disabled value="'+data.ime_kategorije+'" type="text" id="'+data.id+'" class="required size-140 text fl" name="form[naslov]" />'+
'<a href="javascript:void:(0)" onClick="izbrisiKategorijo('+data.id+')"><img src="<?php echo constant('REL_PATH'); ?>/images/button/delete.png" class="gumbek" alt="" /></a>'
'</div>';
$('#nalozene_kategorije').append(vsebina);
izbrisiSeznam();
}
});
return true;
}
else
{
alert('Vnesti morate ime kategorije');
return false;
}
}
答案 0 :(得分:8)
要从过滤中删除所有选项,请选择:
dijit.byId('kat').removeOption(dijit.byId('kat').getOptions());
在Dojo 1.7.2中为我工作
答案 1 :(得分:1)
以下适用于我(道场1.8.3):
var node = document.getElementById("MY_SELECT_ID");
while (node.firstChild) node.removeChild(node.firstChild);
这是user2243420的答案的非jQuery版本
答案 2 :(得分:0)
以下是以编程方式删除所有选项的方法。分配一个新的空白商店。然后将值设置为空白。
// Define it programatically:
_cellsSelect = new dijit.form.FilteringSelect({
id : "cells" + _instance,
store : cellStore,
searchAttr : "name"
});
// Clear it:
_cellsSelect.store = new dojo.store.Memory({
data : [ {
name : '',
id : ''
} ]
});
_cellsSelect.set('value', '');
答案 3 :(得分:0)
我们可以将一个空数组设置为Filtering select Widgets store。
dijit.byId('widgetId').store.data.splice(0,dijit.byId('widgetId').store.data.length);
或简单地说,
dijit.byId('widgetId').store.data = [];
或者您可以将商店本身设置为null。 (但是,要在此之后添加新选项,您需要在添加新选项之前重新创建商店。)
dijit.byId('widgetId').store = null;
答案 4 :(得分:-1)
很少,
1)dojo.byId(“kat”)应为dijit.byId(“kat”)
2)我认为过滤选择没有删除方法。
3)删除您可能使用的所有选项
dijit.byId('kat').dropDown.destroy()
感谢