Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Можно ли решить задачу без библиотек (jquery и пр.)? (https://javascript.ru/forum/events/84260-mozhno-li-reshit-zadachu-bez-bibliotek-jquery-i-pr.html)

Aetae 22.07.2022 20:40

document.addEventListener('DOMContentLoaded', () => {
  document.querySelector('form').addEventListener('submit', async (event) => {
    event.preventDefault();

    const { currentTarget: form } = event;
    const { method, action } = form;

    const response = await fetch(action, { method, body: new FormData(form) });
    const json = await response.json();

    if (json.url) {
      window.location.href = '/' + json.url;
    } else {
      alert(json.status + ' - ' + json.message);
    }    
  })
})

Chile 22.07.2022 21:16

Цитата:

Сообщение от Aetae (Сообщение 546796)
document.addEventListener('DOMContentLoaded', () => {
  document.querySelector('form').addEventListener('submit', async (event) => {
    event.preventDefault();

    const { currentTarget: form } = event;
    const { method, action } = form;

    const response = await fetch(action, { method, body: new FormData(form) });
    const json = await response.json();

    if (json.url) {
      window.location.href = '/' + json.url;
    } else {
      alert(json.status + ' - ' + json.message);
    }    
  })
})

К сожалению, не работает :(

Может быть я что-то не то делаю. Мне нужно как-то адаптировать этот код или просто заменить текущий?

рони 22.07.2022 22:15

Цитата:

Сообщение от Chile
просто заменить текущий?

:yes:

Chile 22.07.2022 22:25

Всё равно не работает :))

Просто вот это выводится на белой странице:

{"status":"success","message":"post added successfully"}

т. е. результат пэхэпэшной валидации:

if ($titleLen < 10 or $titleLen > 100) {
$this->error = 'name should be from 10 to 100 char';
return false;


Не то пишу. Выводится сообщение об успехе:

$this->view->message('success', "post added successfully");

Chile 24.07.2022 23:21

Проверил всё ещё раз, нигде ничего не пропущено в коде, но всё равно не хочет работать :(

Точка с запятой пропущена была. Вопрос снят. Всем огромное спасибо! :)


Часовой пояс GMT +3, время: 02:16.