Как повторно обработать Alax запрос и вывести его результат отменив предыдущий?

Есть поле, туда вводим данные адреса, нажимаем ENTER и появляется карта. Но если мы, после того как уже отправили запрос и появилась карта, меняем данные в поле с адресом и нажимаем ENTER, то карта никак не изменяется. Подскажите, как решить этот момент.

Я новичек в этом плане

Вот весь код

<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	
	<input title="" style="width: 99%;" id="tv24" name="tv24" class="textfield x-form-text x-form-field" value="Самара Гаражная улица 13" tvtype="text" type="text">

	<input title="" style="width: 99%;" id="tv27" name="tv27" class="textfield x-form-text x-form-field" value="53.209133" tvtype="text" type="text">

	<input title="" style="width: 99%;" id="tv28" name="tv28" class="textfield x-form-text x-form-field" value="50.182155" tvtype="text" type="text">

	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
	<script src="http://maps.api.2gis.ru/2.0/loader.js" data-id="dgLoader"></script>
	<div id="mapgis" style="float:left; width: 100%; height: 400px;"></div>

	<script type="text/javascript">

		var tv27 = $('#tv27');
		var tv28 = $('#tv28');
		var searchMap = $('#tv24');

		var k1=tv27.val();
		var k2=tv28.val();
		var searchInputMap=searchMap.val();

		$("body").keyup(function () {
			searchInputMap=searchMap.val();
		}).keyup();

		$(document).ready(function(){
			$("#tv24").keypress(function(e){
				if(e.keyCode==13){
					alert("Нажат ENTER");
					DG.then(function () {
						var map, point, lat, lng, marker;

						map = DG.map('mapgis', {
							center: [54.9802, 82.8980],
							zoom: 12
						});

						DG.ajax({
							url: 'http://catalog.api.2gis.ru/geo/search',
							data: {
								key: 'ruoouf8615',
								version: 1.3,
								q: '"'+searchInputMap+'"'
							},
							type: 'GET',
							success: function(data) {
								alert('Ответ от ajax получен!');
								if (typeof marker !== 'undefined') {
									map.removeLayer(marker);
								}

								point = DG.Wkt.toPoints(data.result[0].centroid);

								lng = point[0];
								lat = point[1];

								marker = DG.marker([lat, lng])
								map.addLayer(marker);

								map.panTo([lat, lng]);
							},
							error: function(error) {
								console.log(error);
							}
						});
					});
				}
			});
		});

	</script>

</body>
</html>
  • Вопрос задан
  • 548 просмотров
Решения вопроса 1
kentuck1213
@kentuck1213
покажу на примере дальше сам додумаешь
var i = 0;
$.ajax{
i++
Бла : бла,
Бла : бла,
Бла : бла
success:function(data){
if(i < 2){
// здесь идет проверка если ajax запрос второй то удаляй что тебе надо или перезаписывай 
} esle { // я буду делать то}
}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы