form

function save_data() {

    // прибираю виділення полів з некоректними значеннями, якщо є
    var inval_elems = main_form.getElementsByClassName("is-invalid");
    for (var i=0; i<inval_elems.length; i++)
    {
        document.getElementById(inval_elems[i].id).classList.remove('is-invalid');
    }

    let main_form = document.forms.mainform
    let fdata = new FormData(main_form);

    fetch("/savedata.py", { method: "POST", body: fdata })

    .then(resp => {
        if (resp.status != 200) {
            alert('danger', ERR_SRV_REFUSED_REQUEST +` Status: ${resp.status}`);
        }
        console.log(resp.status);
        return resp.json();  // return server response as json
    })
    .then(resp => save_data_success(resp))
    .catch(err =>  {
        console.dir(err);
        alert('danger', ERR_RUNTIME)
    });
}

function save_data_success(responce)
{
    console.dir(responce);
    if (responce && 'code' in responce)
    {
        console.log('responce have code=' + responce.code);
        if (responce.code != 0)
        {
            console.log('error');
            alert('danger', responce.data.mess);
            err_elem = document.getElementsByName(responce.data.name)[0];
            err_elem.classList.add('is-invalid');
        }
        else
        {
            console.dir(responce.data);
            alert('success', responce.data.mess);
        }
    }
    else
        alert('danger', "{{ ERR_UNKNOWN_RESPONSE }}");
}

Last updated