Когда нажата кнопка отправки, это событие также обрабатывается некоторым кодом, который отправляет форму - я тоже поделился бы этим кодом, но у меня возникли проблемы с его поиском. Моя проблема в том, что я хочу иметь возможность отменить отправку формы из события нажатия кнопки (как вы можете видеть, я попробовал несколько способов сделать это), но вместо этого происходит то, что появляется сообщение проверки, что часы не совпадают и через несколько секунд появляется сообщение о том, что форма была отправлена.
$(document).ready(function() {
// find total hours
var reportedTotalHours = parseFloat($("#TotalHours").text());
if (!reportedTotalHours) {
reportedTotalHours = parseFloat($("#EventDuration").text());
$("#TotalHours").text(reportedTotalHours)
}
// handle button click
$('input[type=button]').on('click', function(evt) {
if ($(this).val() == 'Close')
return true;
var totalHours = 0;
$('select.dropdownQuestion').each(function(i, sel) {
var hours = $(sel).find(":selected").text();
var f = parseFloat(hours);
if (f != 0 && !Number.isNaN(f))
totalHours += f;
});
// validate that hours are within a quarter hour of each other
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();
evt.stopPropagation();
$("#SkipSave").val('true');
return false;
}
return true;
});
});
Я думаю, что проблема может быть в том, что я нахожусь в обработчике события нажатия кнопки, и я пытаюсь отменить Вместо этого отправьте событие отправки, но если я изменю это значение:
$('input[type=button]').on('click', function(evt) {
на
$('form').submit(function(evt) {
, тогда проверка, по-видимому, никогда не произойдет.