Javascript 如何获取过滤器选择选项并使用dojo添加新选项
我在表单中有一个FilteringSelect,我想获取它的选项,以便按字母顺序插入一个新选项 FilteringSelect元素是: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=
<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将只覆盖它。它不会抛出任何错误。