2013-09-08 3 views
0

Каждое значение моего объекта json добавляется дважды в «listOfCountries». Я не понимаю, почему он дважды перебирает объект результата. Любая помощь будет оценена!Функция jquery циклически повторяется

var listOfCountries = [] 

$(document).ready(function() { 

    $.ajax({ 
     url: '/Json/GetCountries', 
     type: 'GET', 
     success: function (result) { 

      $.each(result, function (name, value) { 
       listOfCountries.push(value.Country); 
      }); 

      $("#countriesAutoComplete").kendoAutoComplete(listOfCountries); 
     } 
    }); 
}); 

Json объект отправляется по проводам:

[{"Country": "United States Of America"},{"Country": "Australia"},{"Country": "Britain"}] 

HTML

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<!DOCTYPE html> 

<html> 
<head> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
</head> 
<body> 
    <div> 
     <p> 
      Country: <input id="countriesAutoComplete" class="k-input" /> 
     </p> 
    </div> 
    <script type="text/javascript" src="~/Scripts/Custom.js"></script> 
</body> 
</html> 
+1

ничего плохого в вашей функции. Попробуйте положить 'console.log' в' $ .each', чтобы убедиться, что его выполнение дважды –

ответ

2

Каждый раз, когда ваш код работает, добавьте больше строк в listOfCountries.
Вы никогда не удаляете строки из последнего времени, поэтому глобальный массив продолжает расти.

Возможно, вы не должны сделать глобальную переменную.