작은 위젯 검색 - "리턴"키를 눌렀거나 결과를 선택했는지 어떻게 확인합니까?
질문:
주소를 검색할 때 자동으로 제안된 값을 던질 수 있는 검색 상자가 있습니다.검색 이벤트를 트리거하는 몇 가지 방법이 있습니다.
이 장면에서 이벤트 처리 프로그램에서 선택했는지 Enter 키를 눌렀는지 확인할 수 있는 방법이 있습니까?
Javascript
var esriMap = new Map("esriMap", {
basemap: "topo",
center: [-12.4260, 31.3403],
zoom: 12
});
var search = new Search({
map: esriMap,
}, dom.byId("esriSearch"));
search.startup();
search.on("select-result", searchboxResult); // the event handler
function searchboxResult(e)
{
// determine "Enter" key versus "Selection from auto-suggest"
}
답안
물론 지도에 선택을 표시하거나 Enter 키를 눌렀는지 확인할 수 있는 방법이 있다.다음은 이 기능을 실현하는 작업 코드-
require([
"esri/map",
"esri/dijit/Search",
"dojo/on",
"dojo/domReady!"
], function (Map, Search, on) {
var map = new Map("map", {
basemap: "gray",
center: [-120.435, 46.159], // lon, lat
zoom: 7
});
var search = new Search({
map: map
}, "search");
search.startup();
var isEnter= false;
on(search.inputNode, "keypress", function(evt){
isEnter = evt.keyCode == 13;
});
search.on("select-result", searchboxResult);
function searchboxResult(e)
{
alert(isEnter?"By Enter Selection": "By Suggestion Selection");
// determine "Enter" key versus "Selection from auto-suggest"
}
});
html,
body,
#map {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#search {
display: block;
position: absolute;
z-index: 2;
top: 20px;
left: 74px;
}
<link rel="stylesheet" href="https://js.arcgis.com/3.18/esri/themes/calcite/dijit/calcite.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.18/esri/themes/calcite/esri/esri.css">
<script src="https://js.arcgis.com/3.18/"></script>
<body class="calcite">
<div id="search"></div>
<div id="map"></div>
</body>
도움이 되었으면 좋겠습니다:)