JQuery: превышен максимальный размер стека вызовов в HTMLFormElement.toString

У меня есть этот файл, который проверяет и отправляет форму умного мастера jQuery, я не знаю, что не так с моим кодом, но он дает мне превышение максимального размера стека вызовов, когда я отправляю запрос AJAX POST.

Все предыдущие вопросы здесь не помогли. Ниже приведен код. Мне очень нужна помощь и заранее спасибо.

$(document).ready(function() {
  var error = false;
  var fnError = false;
  var lnError = false;
  var dobError = false;
  var genError = false;
  var phoneErr = false;

  var isValid = true;
  var id = $("#session_id");
  var activation = $("#session_activation");
  var firstname = $("#firstname");
  var lastname = $("#lastname");
  var dob = $("#dob");
  var select_gender = $("#select_gender");
  var location = $("#location");
  var descr = $("#desc_txt");

  // event listeners
  $("#btn_name_next").hide();
  $("#btn_info_next").hide();
  $("#btn_final").hide();

  if ($("#first")) {
    $("#lastname").keyup(function() {
      $("#btn_name_next").show();
      validateStep1();
      cleanError();
    });
  }

  if ($("#second")) {
    $("#select_gender").change(function() {
      $("#btn_info_next").show();
      validateStep2();
      cleanError();
    });
  }

  $("#form_details").submit(function(e) {
    e.stopPropagation();
    e.preventDefault();
    var u_id = id.val();
    var active = activation.val();
    var f_name = firstname.val();
    var l_name = lastname.val();
    var date_of_birth = window.dob; //this variable is from function to convert date
    var gender = select_gender.val();
    var phone_num = window.phone; //this variable is from firebase auth
    var photo_url = window.foo; //this variable is from firebase storage
    var user_address = location.val();
    var user_desc = descr.val();
    var url = $(this).attr("action");
    var btn_final = $("#btn_final");

    $.post('url', {
      user_id: u_id,
      acc_active: active,
      user_fname: f_name,
      user_lname: l_name,
      user_dob: date_of_birth,
      user_gender: gender,
      user_phoneNumber: phone_num,
      user_pic: photo_url,
      address: user_address,
      user_about: user_desc,
      btn_final: btn_final
    }, function(response) {
      console.info(response);
    })
  });

  function validateStep1() {
    if (firstname.val() == "" || firstname.val().length <= 1) {
      $("#fn_info").html(`<small class = "text-danger">Please enter your first name</small>`);
      error = true;
      fnError = true;
    } else {
      return error;
      return fnError;
    }

    if (lastname.val() == "" || lastname.val().length <= 1) {
      $("#ln_info").html(`<small class = "text-danger">Please enter your last name</small>`);
      error = true;
      lnError = true;
    } else {
      return error;
      return lnError;
    }
    return isValid;
  }

  function validateStep2() {
    if (dob.val() == "") {
      $("#dob_info").html(`<small class = "text-danger">Please enter your your date of birth</small>`);
      error = true;
      dobError = true;
    } else {
      var bdate = dob.val();
      var date = new Date(bdate.replace(/(\d{2})-(\d{2})-(\d{4})/, "$1/$2/$3"));
      window.dob = date;
      console.info(date);
      return error;
      return dobError;
    }

    if (select_gender.val() == $("#opt")) {
      $("#gen_info").html(`<small class = "text-danger">Please chose a gender</small>`);
      error = true;
      genError = true;
    } else {
      return error;
      return genError;
    }
    return isValid;
  }

  function cleanError() {
    if (error == true) {
      if (fnError == true) {
        $("#firstname").keyup(function() {
          $("#fn_info").hide();
        })
      }
      if (lnError == true) {
        $("#lastname").keyup(function() {
          $("#ln_info").hide();
        })
      }
      if (dobError == true) {
        $("#dob").change(function() {
          $("#dob_info").hide();
        })
      }
      if (genError == true) {
        $("#select_gender").change(function() {
          $("#gen_info").hide();
        })
      }
      if (phoneErr == true) {
        $("#phone").keyup(function() {
          $("#phone_info").hide();
        })
      }
    }
  }
});

Попытка отправить объект jQuery как btn_final . При попытке сериализовать объект jQuery происходит внутреннее прерывание $.param(). Что вы хотите от этого элемента?

charlietfl 17.07.2018 19:43

@charlietfl Я хочу использовать это для проверки данных в моем файле php, чтобы я знал, что форма исходит из этой конкретной формы

Quajo Duke 17.07.2018 19:46

@charlietfl может это быть причиной?

Quajo Duke 17.07.2018 19:46

Но какая от этого ценность? не может отправить элемент, и вы не предоставили нам HTML-код, чтобы мы знали, что это такое. И да, это, вероятно, причина

charlietfl 17.07.2018 19:47

@charlietfl извините за то, что это часть формы умного мастера jquery, и это всего лишь кнопка, я не хотел, чтобы вопрос был слишком длинным. <button id = "btn_final" name = "btn_final" class = "btn btn-success btn-lg mt-3" type = "submit">Continue</button> это кнопка, которая является его html

Quajo Duke 17.07.2018 19:53

Так может быть, тебе нужен var btn_final = $("#btn_final").attr('name');?

charlietfl 17.07.2018 19:55

@charlietfl спасибо, я думаю, что это была проблема. Я думал об этом, но мне нужна была дополнительная опция. Большое спасибо

Quajo Duke 17.07.2018 20:18
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
104
0

Другие вопросы по теме