function GetNewTelephone() {
var link = 'Home/NewTelephone?idOldTelephone=-1&idContact=-2';
var number = document.getElementsByClassName("number");
for (i = 0; i < number.length; i++) {//цикл по всем полям с номерами
var numberInp = number[i];
var idNumber = number[i].id;
var idContact = number[i].parentNode.id;
link = link.replace("-1", idNumber);
link = link.replace("-2", idContact);
$.ajax({
type: "GET",
url: link,
success: function (data) {
for (j = 0; j < data.length; j++)//цикл по всем новым номерам
{
var telephone = data[j];
var cont = document.getElementById(telephone.ContactId);
var numberInput = cont.cells[2];
numberInput.innerText += telephone.Number;
numberInput.id = telephone.TelephoneId;
}
},
})
}
}
for (j = 0; j < data.length; j++){
...
}
for (i = 0; i < number.length; i++){
...
$.ajax({
...
for (j = 0; j < data.length; j++){
...
}})
}
var promises = [],
linkTpl = 'Home/NewTelephone?idOldTelephone=%1&idContact=%2';
$('.number').each(function () {
// советую хранить информацию не в id-шниках а в data-* атрибутах
// их для этого и придумали
var idNumber = this.id;
var idContact = this.parentNode.id;
// вот тут у вас был баг, у вас один раз формировалась
// правильная ссылка и она больше не менялась.
var link = linkTpl.replace("%1", idNumber).replace("%2", idContact);
// добавляем в очередь обещание
promises.push($.ajax({
type: "GET",
url: link
}));
});
$.when(promises).then(function () {
// выполнится когда все запросы, добавленные в очередь, выполнятся
// результаты запроса будут переданы как аргументы, смотрите документацию
});