@cimajo

Maximum call stack size exceed?

bitch: function() {
    var a = localStorage.getItem('a');
    var b = localStorage.getItem('b');
    var c = localStorage.getItem('c');

    if (a !== null) {
      $('input[name="a"]').val(a);
    }
    if (b !== null) {
      $('input[name="b"]').val(b);
    }
    if (c !== null) {
      $('input[name="c"]').val(c);
    }
  }


При вызове функции bitch вылетает ошибка Maximum call stack size exceed at buildParams (jquery.js:10027) в консольке. Я допер до этого методом тыка, что именно эта функция виновата. Еще я заметил то, что если я уберу этот кусок из функции:

if (b !== null) {
      $('input[name="b"]').val(b);
    }


то все становится норм! Почему именно он вызывает ошибку? Он же от других ничем не отличается.

Весь код:

var order = {
  // Получаем из localstorage и вставляем в форму
  bitch: function() {
    var a = localStorage.getItem('a');
    var b = localStorage.getItem('b');
    var c = localStorage.getItem('c');

    if (a!== null) {
      $('input[name="a"]').val(a);
    }
    if (b!== null) {
      $('input[name="b"]').val(b);
    }
    if (c!== null) {
      $('input[name="c"]').val(c);
    }
  },
  // Берем данные из формы и делаемз запрос и вставляем данные в блок
  set: function(x, y) {
    $.ajax({
      method: 'post',
      url: '/asdsdsdasd',
      data: {
        from: x,
        to: y
      },
      dataType: 'json'
    }).done(function(data) {
      $('#12312331sdsdadada').html(data);
    });
  },
  newasdasddasdasasd: function() {
    $.ajax({
      method: 'post',
      url: '/asdasdasdd',
      data: $('#asdasasdas').serialize(),
      dataType: 'json'
    }).done(function() {
      alert('asddsd');
    });
  }
};

$(document).ready(function() {
  order.bitch();

  var a = $('input[name="a"]');
  var b  = $('input[name="b"]');

  if (a.val() !== '' && b.val() !== '') {
    order.set(a, b);
  }

  a.change(function() {
    if ($(this).val() !== '') {
      localStorage.setItem('a', $(this).val());
    }

    if ($(this).val() !== '' && b.val() !== '') {
      order.set($(this).val(), b.val());
    }
  });

  b.change(function() {
    if ($(this).val() !== '') {
      localStorage.setItem('b', $(this).val());
    }

    if ($(this).val() !== '' && a.val() !== '') {
      order.set($(this).val(), a.val());
    }
  });

  $('input[name="c"]').change(function() {
    if ($(this).val() !== '') {
      localStorage.setItem('c', $(this).val());
    }
  });

  $('#asdasasdas').submit(function() {
    order.newasdasddasdasasd();

    return false;
  });
});
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
@cimajo Автор вопроса
Полностью переписал скрипт и все волшебным образом исчезло. Ничего не изменял, просто переписал оставив все также (немного украсил код, вынеся некоторые блоки кода в отдельные функции). вот такой сраный javascript
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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