在搜索结果之前修改搜索小部件值
Modify Search Widget Value Before Searching for Results
我的地图上有一个搜索小部件。我要做的是,当用户键入1215 Bourboun St
时,我想将Sacramento, US
附加到该值后,以便返回非常精确的结果。
我看了文档,发现了一个search-results
事件,它基本上让我玩返回的结果。但是,在搜索完成之前是否存在一个我可以订阅的事件呢?这将使我能够在开始搜索之前修改搜索值。
map = new Map("mapDiv", {
center: [xyz, abc],
zoom: 10,
basemap: "streets"
});
var search = new Search({
map: map
}, dom.byId("search"));
search.startup();
search.on("search-results", populateHiddenField);
.
.
.
// some irrelevant code
根据Gary的建议,我创建了一个小提琴,让你们这些专家帮助我解决这个问题。
案例场景::如果您开始键入1215
,您会注意到它返回来自世界各地的结果,而不仅仅是萨克拉门托,即使我根据Gary的建议扩展了Search
类。我能不能把自动提示限制在萨克拉门托?
JSFIDDLE
UPDATE:问题已编辑为启用建议而不是禁用建议,我已相应地更新了我的答案。处理建议就像重写suggest
方法一样简单,方法与search
方法完全相同。
创建一个扩展Search
并覆盖search
函数的新类。
map = new Map("mapDiv", {
center: [xyz, abc],
zoom: 10,
basemap: "streets"
});
//Define new class that inherits from Search
var MySearch = declare(Search, {
//Override the search method
search: function () {
var originalValue = this.value;
this.set("value", this.value + ", Sacramento, CA");
var retVal = this.inherited(arguments);
this.set("value", originalValue);
return retVal;
}
//Override the suggest method
suggest: function () {
var originalValue = this.value;
this.set("value", this.value + ", Sacramento, CA");
var retVal = this.inherited(arguments);
this.set("value", originalValue);
return retVal;
}
});
var search = new MySearch({
map: map,
enableSuggestionsMenu:true,
enableSuggestions:true,
autoSelect:true,
autoNavigate:true
}, dom.byId("search"));
search.startup();
search.on("search-results", populateHiddenField);
你需要在你的require
列表中包含"dojo/_base/declare"
。
关于扩展Dojo类的详细信息,请参阅http://dojotoolkit.org/documentation/tutorials/1.10/declare/。
相关文章:
- 用程序搜索JQuery数据表中的文本
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在html Select中添加搜索
- 在输入字段中将最小金额设置为
- Ajax Live搜索发布到Laravel视图
- 输入的最小长度(搜索框)
- 用硒填充和操作jqGrid的搜索小部件似乎不会触发DOM表单事件
- 基于SSL的Twitter搜索小工具
- SWT浏览器小部件中的搜索字符串
- 外部搜索小工具上的谷歌分析跟踪
- 如何在不干扰搜索优化的情况下定位html密集型小部件
- 在搜索结果之前修改搜索小部件值
- 表筛选器小部件过滤任何匹配.如何只搜索所有列(删除单个列的搜索)
- 搜索小部件-如何确定是否“输入”已按下或已选择结果
- 添加一个搜索小部件到ArcGIS众源故事应用程序
- 如何选择类别,以及在freebase搜索小部件
- 限制搜索范围与搜索小部件/地理编码器
- Twitter搜索框小部件
- 清除搜索框,单击其中的小“x”