Показать сообщение отдельно
  #8 (permalink)  
Старый 22.08.2021, 22:25
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,775

Сообщение от zloy_ej
то запрос все равно отправляется. Почему так происходит, и как надо?
Потому, что выход из frm.onsubmit происходит раньше, чем закончится
AJAX("POST", requestURL, body) и запрос уже будет отпроавлен. А event.preventDefault() будет выполняться уже потом
Не знаю вашего html кода, но сделать можно так - вместо кнопки <input type=submit> использовать <button type=button> и вместо frm.onsubmit

const requestURL = '/get_building';
let frm = document.forms[0];
let but = ...// наша кнопка
but.onclick = async function(event) {
    let body = 'building_name=' + frm.building_name.value;    //получаем 'building_name=123', Если ввели в форму 123
    let answer = AJAX("POST", requestURL, body)
     
    answer.then(data => {
        if(data.resp=='New'){
            console.log('Новое здание');
            frm.submit()
        }
        else {
            console.log('Старое здание');
             
        }
    })
    .catch(err => console.log(err))
}
Ответить с цитированием