Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 如何获取过滤器选择选项并使用dojo添加新选项_Javascript_Dojo - Fatal编程技术网

Javascript 如何获取过滤器选择选项并使用dojo添加新选项

Javascript 如何获取过滤器选择选项并使用dojo添加新选项,javascript,dojo,Javascript,Dojo,我在表单中有一个FilteringSelect,我想获取它的选项,以便按字母顺序插入一个新选项 FilteringSelect元素是: <select name="inv_ext" id="inv_ext" data-dojo-type="dijit.form.FilteringSelect"> <option class="opt_inv_ext" value="1">Aaaaa, Aaa</option> <option class=

我在表单中有一个FilteringSelect,我想获取它的选项,以便按字母顺序插入一个新选项

FilteringSelect元素是:

<select name="inv_ext" id="inv_ext" data-dojo-type="dijit.form.FilteringSelect">
    <option class="opt_inv_ext" value="1">Aaaaa, Aaa</option>
    <option class="opt_inv_ext" value="2">Ccccc, Ccc</option>
</select>
目标是插入以下节点:

<option class="opt_inv_ext" value="3">Bbbbb, Bbb</option>
Bbbbb,Bbb
使用标签作为比较值而不是“值”属性在两个现有标签之间进行比较


有什么想法吗?提前谢谢,对不起我的英语

如果你使用商店来支持你的列表,这很容易做到。我假设您使用的是dojo 1.6>。以下是一个例子:

-在HTML中:

<input id="inv_ext">

如果你使用商店来支持你的列表,这很容易做到。我假设您使用的是dojo 1.6>。以下是一个例子:

-在HTML中:

<input id="inv_ext">

我解决这个问题的方法如下:

dijit.byId("select_id").store.root.add(dojo.create("option",{ value: "some", innerHTML: "label of option"}));
要删除现有元素,只需执行以下操作:

var size = dijit.byId("select_id").store.root.removeChild.length;    
for(var i=size; i>=0; i--){
    dijit.byId("select_id").store.root.removeChild(dijit.byId("select_id").store.root.children[size-1]);
}

我解决这个问题的方法如下:

dijit.byId("select_id").store.root.add(dojo.create("option",{ value: "some", innerHTML: "label of option"}));
要删除现有元素,只需执行以下操作:

var size = dijit.byId("select_id").store.root.removeChild.length;    
for(var i=size; i>=0; i--){
    dijit.byId("select_id").store.root.removeChild(dijit.byId("select_id").store.root.children[size-1]);
}

那是个好主意。如果在向用户请求某些数据后在存储中插入项目,则会立即更新FilteringSelect?是。我在发帖前测试过这个。非常感谢!它工作得很好。我试着做一些更难的事情,答案很简单,很好。store.add({value:3,text:'sampleText'});也会起作用。这是put的另一种选择。如果添加了重复项,则add和put之间的区别是-add将抛出错误。put将只覆盖它。它不会抛出任何错误。这是个好主意。如果在向用户请求某些数据后在存储中插入项目,则会立即更新FilteringSelect?是。我在发帖前测试过这个。非常感谢!它工作得很好。我试着做一些更难的事情,答案很简单,很好。store.add({value:3,text:'sampleText'});也会起作用。这是put的另一种选择。如果添加了重复项,则add和put之间的区别是-add将抛出错误。put将只覆盖它。它不会抛出任何错误。