Есть ли событие перед submit'ом формы html?

У меня есть табличка, которую я генерирую с помощью DataTable, в ней которые поля - редактируются пользователем. Все это дело находится в теге <form asp-page="MyPage"> вместе с кнопкной <button type="submit"> которая генерируется автоматически фреймворком который я использую, поэтому повесить id и on click не получится.

Помимо этого, есть <input asp-for="EditShopItemVM.JsonKeyValue">, оно помечено как [HiddenInput].

В js коде я подписался на событие submit формы:

$("#editModalForm").submit(() =>
{
    let list = $('#editPropertiesTable > tbody').prop("childNodes");

    let keyValuePair = [];
    for (let i = 0; i < list.length; i++)
    {
        let firstCell = list[i].cells[0];
        let secondCell = list[i].cells[1];

        let key = $(firstCell).prop('innerText');
        let  value = $(secondCell).children("input").val();

        keyValuePair.push({ key, value });

        console.log(key, value);
    }

    //Пытаюсь задать input
    $("#JsonKeyValue").val(JSON.stringify(keyValuePair));
});

И в моем OnPostAsync:

public async Task<IActionResult> OnPostAsync()
{
    ValidateModel();
    var createUpdate = ObjectMapper.Map<EditShopItemViewModel, CreateUpdateShopItemDto>(EditShopItemVM);
    await _service.UpdateAsync(Id, createUpdate);
    return NoContent();
}

Проблема заключается в том, что сначала вызывается OnPostAsync, а только потом событие submit и соответственно одно свойство в забинженной модели - null (т.к задаю в последней строчке js кода). Есть ли возможность сначала выполнить submit событие, а только потом уже вызов OnPostAsync? Может быть есть какое-нибудь событие before submit или что-то в этом роде?


Ответы (0 шт):