Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Часть функции не срабатывает (https://javascript.ru/forum/events/50066-chast-funkcii-ne-srabatyvaet.html)

devastor 10.09.2014 14:09

Часть функции не срабатывает
 
var selectcity = 'none';
function centrmap(){
	//получаем положение пользователя по IP
	geolocation.get({provider: 'yandex', mapStateAutoApply: true
    	}).then(function (result) {
			//центруем карту по положению пользователя и ставим метку
			myMap.geoObjects.add(result.geoObjects); 
			myMap.geoObjects.remove(result.geoObjects); //удаяляем метку(чтоб не мешалась)
			var cityname = result.geoObjects.get(0).properties.get('name');//получаем из какого города пользователь
			var i = 0;
			console.log(selectcity);
			var objSel = document.getElementById('allcity');
			document.getElementById('info').value = cityname;
			while (objSel.options[i]!=0){
			i++;
			if (objSel.options[i].text == cityname){
				objSel.selectedIndex = i; 
				selectcity = objSel.options[i].text;//выставляем город в селекторе
				break}
			}
//не работает дальше
			console.log(selectcity);
			if (selectcity == 'none'){
				objSel.options[objSel.options.length] = new Option(cityname, objSel.options.length);
				objSel.selectedIndex = objSel.options.length-1;
			}
    	});
}

В целом вот, всё что после "не работает дальше" не срабатывает, при отрицательном проходе "(objSel.options[i].text == cityname)", при положительном проходе срабатывает, по сути ошибка должна быть в скобочках, но я несколько раз всё проверил и ошибки не вижу

Brook 11.09.2014 15:31

if (objSel.options[i].text == cityname){
				objSel.selectedIndex = i; 
				selectcity = objSel.options[i].text;//выставляем город в селекторе
				break}

просто в вас получается бесконечный while т.к. вы его не прерываете
на отрицание поставьте objSel.options[i]==0 или break тоесть ваша задача забить значением это переменную дать ей значение/длинну что бы objSel.options[i] - существовала

else {ТУТ кОД ПРЕРЫВАНИЯ или ЗАБИВАЕМ ЗНАЧЕНИЕ\ДЛИННУ}

devastor 12.09.2014 15:50

Спасибо разобрался!


Часовой пояс GMT +3, время: 02:15.