微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从dijit.form.FilteringSelect中删除所有选项

如何解决从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\">&nbsp;</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 举报,一经查实,本站将立刻删除。