如何解决从dijit.form.FilteringSelect中删除所有选项
|| 我需要有关从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;
}
}
解决方法
要从过滤器中删除所有选项,请选择:
dijit.byId(\'kat\').removeOption(dijit.byId(\'kat\').getOptions());
在Dojo 1.7.2中为我工作
, 以下对我有用(dojo 1.8.3):
var node = document.getElementById(\"MY_SELECT_ID\");
while (node.firstChild) node.removeChild(node.firstChild);
这是user2243420的答案的非jQuery版本
, 这是如何以编程方式删除所有选项的方法。分配一个新的空白存储。然后将该值设置为空白。
// 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\',\'\');
, 我们可以为筛选选择小部件存储设置一个空数组。
dijit.byId(\'widgetId\').store.data.splice(0,dijit.byId(\'widgetId\').store.data.length);
或者简单地说,
dijit.byId(\'widgetId\').store.data = [];
或者,您可以将商店本身设置为null。 (但是,要在此之后添加新选项,则需要在添加新选项之前重新创建商店)。
dijit.byId(\'widgetId\').store = null;
, 一些事情,
1)dojo.byId(\“ kat \”)应该是dijit.byId(\“ kat \”)
2)我认为在筛选选择上没有删除方法。
3)删除所有选项,您可以使用此选项
dijit.byId(\'kat\').dropDown.destroy()
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。