dojo有两个小部件实现了增量搜索,dojo.from.FilteringSelect和dojo.from.ComoBox.他们都是从dojo.data数据源中获取提示数据,并且每一个都使用一个<select>标签来实现界面,所不同的是FilteringSelect使用将选项限制在提示数据的集合内,而ComoBox不会这样做。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>mixin</title> <style type="text/css"> @import "dojo/resources/dojo.css"; @import "dijit/themes/tundra/tundra.css"; </style> <meta name="author" content="zhou" /> <script src= "dojo/dojo.js" data-dojo-config="isDebug: true, async: true,parseOnload:true"></script> <script language="JavaScript" src= "test.js"></script> </head> <body class="tundra"> <div id = "stateSelect"></div> </body> </html>
dojo.require("dojo.parser"); dojo.require("dojo.data.ItemFileReadStore"); dojo.require("dijit.form.FilteringSelect"); //dojo.addOnLoad() var store = new dojo.data.ItemFileReadStore({ url: "abc.json" }); dojo.ready(function(){ var filteringSelect = new dijit.form.FilteringSelect({ store: store, searchAttr: "name" }, "stateSelect"); });
{ "identifier": "name", "label":"name", "items": [ { "name": "Bob", "spouse": {"_reference":"Sally"}, "children": [ { "_reference":"Nancy"}]}, { "name": "Sally", "spouse": {"_reference":"Bob"}, "children": [ { "_reference":"Nancy"}]}, { "name": "Nancy"}, { "name": "zhou"}, ] }