Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从Dijit FilteringSelect小部件中删除所有选项?_Javascript_Widget_Dojo_Dijit.form - Fatal编程技术网

Javascript 如何从Dijit FilteringSelect小部件中删除所有选项?

Javascript 如何从Dijit FilteringSelect小部件中删除所有选项?,javascript,widget,dojo,dijit.form,Javascript,Widget,Dojo,Dijit.form,我尝试从dijit.form.filteringselect中删除所有选项,并使用下面的函数向dijit.form.filteringselect添加一个选项。但是,我得到一个错误:没有方法getOptions和addOption。我正在使用Dojo1.7 function showTablesDropDown(tableDiv){ dijit.byId(tableDiv).removeOption(dijit.byId(tableDiv).getOptions()); dijit.by

我尝试从dijit.form.filteringselect中删除所有选项,并使用下面的函数向dijit.form.filteringselect添加一个选项。但是,我得到一个错误:没有方法getOptions和addOption。我正在使用Dojo1.7

function showTablesDropDown(tableDiv){
  dijit.byId(tableDiv).removeOption(dijit.byId(tableDiv).getOptions());
  dijit.byId(tableDiv).addOption(dojo.create("option", {label:"None", value:"None"}));
}

如何从dijit.form.filteringselect中删除所有选项并将选项添加到dijit.form.filteringselect?

这里的问题只是对
filteringselect(以及从
\u AutoCompleterMixin
继承的任何内容)如何与其数据交互的一个小小误解。无论您如何创建
FilteringSelect
小部件,控制其选项的底层机制都是一个遵循

这意味着为了修改
过滤器选择
小部件的选项,您需要与该
存储
交互。我必须演示一下,但基本上您希望将函数更改为:

function showTablesDropDown(tableDiv){
   var filteringSelectWidget = dijit.byId(tableDiv);

   // Clear current value since options are changing.
   filteringSelectWidget.set("value", ""); 

   var store = filteringSelectWidget.get("store");
   var newData = [{label: "None", value: "None"}];    

   // Give the underlying store a new data array.
   store.setData(newData);
}

为什么有dijit.byId(tableDiv)
?dijit.byId(tableDiv)是过滤器的ID选择有什么解决方案吗@DimitriMi不想将{label:“None”,value:“None”}添加到存储中。所以我试过这个。byId(tableDiv).set(“value”,{label:“None”,value:“None”});但它不起作用我想你的例子是替换存储并向存储添加新数据。我不想替换store,只想在dijit.byId(tableDiv)中添加新选项而不是storeWell,您的
FilteringSelect
小部件使用一个存储来保存所有选项。因此,您不只是将项目直接添加到
FilteringSelect
,而是将项目添加到
FilteringSelect
的存储中。那么您只想向商店添加一个新项目(并保留所有原始项目)?或者您只是试图将
过滤器选择
的值设置为尚未作为选项存在的值?