Как получить еще одно «оповещение» для каждой формы в запросе ajax?

  let getLoginPassSystem = function (getPassForgotSystem, getLoginCheckSystem) {
  $(document).ready(function () {
    $('#login,#lostpasswordform,#register').submit(function (e) {
      e.preventDefault();
      $.ajax({
        type: "POST",
        url: 'http://www.virtuelles-museum.com.udev/spielelogin/logsystem.php',
        data: $(this).serialize(),
        success: function (response) {
          var data = JSON.parse(response);

          if (data.success == "accepted") {
            document.getElementById('inner').innerHTML = 'Herzlich Willkommen';

            // location.href = 'index.php';
          } else {
            alert('Ungültige Email oder Password!');
          }
        }
      });
    });
  })
}

Ну, я хочу иметь для каждой формы (#login,#lostpasswordform,#register) разные «оповещения». Это действительно возможно?

Кстати, я знаю, что если я сделаю другую функцию, она сработает, но я должен использовать ее в одной функции.

Sadi Mehti 11.12.2020 10:22

Просто чтобы быть ясным, есть несколько способов добиться этого. Вывод мудрый, все решения будут работать для вас, вы должны решить, какое из них продолжить. Решение @raximjon может быть масштабируемым для вас.

Abhishek Jain 11.12.2020 10:30
Поведение ключевого слова "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) для оценки ваших знаний,...
1
2
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кажется, вы можете просто проверить e.target - для каждой формы он будет разным.

Вы можете получить больше информации о Event.target здесь: https://developer.mozilla.org/en-US/docs/Web/API/Event/target

Всегда рекомендуется добавить небольшой фрагмент кода, чтобы объяснить, как вы предлагаете решить, иначе вы можете просто прокомментировать исходный вопрос.

Abhishek Jain 11.12.2020 10:31
Ответ принят как подходящий

Вы можете сохранить оповещение в каждом теге div как атрибут данных. Например:

<div id = "login" data-msg = "message1"></div>
<div id = "lostpasswordform" data-msg = "message2"></div>
<div id = "register" data-msg = "message3"></div>


// then you can invoke them like this
let getLoginPassSystem = function (getPassForgotSystem, getLoginCheckSystem) {
  $(document).ready(function () {
    $('#login,#lostpasswordform,#register').submit(function (e) {
      e.preventDefault();
      let current_form = $(this);
      $.ajax({
        type: "POST",
        url: 'http://www.virtuelles-museum.com.udev/spielelogin/logsystem.php',
        data: $(this).serialize(),
        success: function (response) {
          var data = JSON.parse(response);

          if (data.success == "accepted") {
            document.getElementById('inner').innerHTML = 'Herzlich Willkommen';

            // location.href = 'index.php';
          } else {
            alert(current_form.attr('data-msg')); 
          }
        }
      });
    });
  })
}

Хорошо, я вышел из области видимости.

Raximjon Komiljonov 11.12.2020 10:34

На самом деле это правильный код, но каким-то образом он перезагружает мою страницу.

Sadi Mehti 11.12.2020 12:48

Пожалуйста, попробуйте прокомментировать измененные части кода и протестировать. Я думаю, что есть другой код, который вызывает эту проблему

Raximjon Komiljonov 11.12.2020 12:58

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