ESRI JS API Text into search widget
Using JSAPI 3.15
by Alex Azuero
HTML
<script src="https://js.arcgis.com/3.15/init.js"></script>
<link rel="stylesheet" href="https://js.arcgis.com/3.15/esri/css/esri.css">
<link rel="stylesheet" href="https://js.arcgis.com/3.15/dijit/themes/claro/claro.css">
<script type="text/javascript">
var dojoConfig = {
async: true
};
</script>
<label for="mySearch">My custom search box:</label><input type="text" id="mySearch" class="mySearch" />
<label for="arbitraryBox">Another arbitrary box:</label><input type="text" id="arbitraryBox" class="arbitraryBox" />
<div id="search"></div>
<div id="map"></div>
CSS
body, html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 600px;
width: 100%;
margin: 0px;
}
#search {
display: block;
position: absolute;
z-index: 2;
top: 70px;
left: 74px;
}
.mySearch {
margin: 10px;
}
JavaScript
require([
'esri/arcgis/utils',
"dojo/dom-construct",
"dojo/on",
"dojo/dom",
"esri/dijit/Search"
], function (
arcgisUtils, domConstruct, on, dom, Search
) {
var createMapOptions = {
mapOptions: {
slider: true
}
};
var webMapItemID = "623c6136154d4a1bbbfecab6f01c48a4";
deferred = arcgisUtils.createMap(webMapItemID, "map", createMapOptions);
deferred.then(function (response) {
map = response.map;
var s = new Search({
map: map
},"search");
on(dom.byId('mySearch'), "focusout", function(evt) {
console.log("focusout", evt);
s.set('value', dom.byId('mySearch').value);
});
}, function (error) {
console.log("Error: ", error.code, " Message: ", error.message);
deferred.cancel();
});
});