Здраствуйте.
Не очень силен в JS, но задачу поставили, вывести на сайте два поля, вместо одного(адрес):
1) Регион
2) Населённый пункт (город, село, деревня, хутор, станица и т.д.).
Данные должны проверятся через яндекс.
Как это было ранее:
<script type="text/javascript">
ymaps.ready(init);
function init(){
var suggestView=new ymaps.SuggestView('adres');
suggestView.events.add('select',function(event){
var selected=event.get('item').value;
ymaps.geocode(selected,{
results:1
}).then(function(res){
return ymaps.geocode(res.geoObjects.get(0).geometry.getCoordinates(),{
kind:'district',
results:10
}).then(function(res){
var founded=res['metaData']['geocoder']['found'];
$('label.suggest .description').html("");
for(i=0;i<=founded-1;i++){
var info=res.geoObjects.get(i).properties.getAll();
console.log(info);
var name=info['name'];
if(name.search('район')!=-1){
name=name.replace(' район','');
console.log(name);
}
}
});
});
});
}
</script>
Тут все прекрасно работало. Адрес подставлялся.
Покопался в интернете, переписал так:
<script type="text/javascript">
ymaps.ready(function () {
init('gorod', ['locality', 'village', 'hamlet', 'suburb']);
init('region', ['region']);
});
function init(targetId, kinds) {
var suggestView = new ymaps.SuggestView(targetId);
suggestView.events.add('select', function (event) {
var selected = event.get('item').value;
ymaps.geocode(selected, {
results: 1
}).then(function (res) {
var geoObject = res.geoObjects.get(0);
var kind = geoObject.getMetaData().kind;
if (kinds.includes(kind)) {
return ymaps.geocode(geoObject.geometry.getCoordinates(), {
kind: 'district',
results: 10
}).then(function (res) {
var founded = res['metaData']['geocoder']['found'];
$('label.suggest .description').html("");
for (var i = 0; i <= founded - 1; i++) {
var info = res.geoObjects.get(i).properties.getAll();
console.log(info);
var name = info['name'];
if (name.search('район') !== -1) {
name = name.replace(' район', '');
console.log(name);
}
}
});
}
});
});
}
</script>
Но этот код работает так же как и для старого поля адрес, в обоих полях подстановка работает для полного адреса.
Помогите пожалуйста, сделать разную подстановку.