Как отменить событие нажатия кнопки в JavaScript? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытался сделать это двумя разными способами:

$(document).ready(function()
{
    $('input[type=button]').on('click', function(evt){
        if ($(this).val() == 'Close')
          return true;
        var totalHours = 999; // here I am computing a total number of hours but that is irrelevant to my question
        var reportedTotalHours = parseFloat($("#TotalHours").text());
        var difference = Math.abs(totalHours - reportedTotalHours);
        if (difference >= 0.25) // discrepancy must be less than a quarter hour
        {
          alert("Total of hours for each activity must equal " + reportedTotalHours + ".");
          evt.preventDefault();
          return false;
        }
        return true;
    });
});

return false; должен отменять нажатие кнопки, как и evt.preventDefault();, но ни один из них не работает для меня. Когда кнопка нажимается, происходит отправка формы, но я хочу запретить отправку формы до тех пор, пока расхождение в часах не станет меньше 0,25.

1 Ответ

0 голосов
/ 12 февраля 2020

Попробуйте изменить ввод [type = button] на тег кнопки. Затем отправьте форму в обратном вызове onclick, когда условия будут правильными.

В некоторых браузерах элемент input [type = button] отправит форму, если элемента input [type = submit] нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...