Вы получаете это поведение бесплатно, если ваши элементы управления содержатся в пределах <form>
. Из контекста вашего кода, использующего serialize()
, видно, что это уже так. Таким образом, вы можете просто изменить свою логику c, чтобы прослушивать событие submit
формы вместо click
кнопки отправки. Попробуйте это:
$("body").on("submit", ".login-form", function(e) {
e.preventDefault();
loginform = $(this).serialize();
$.ajax({
type: 'post',
url: "includes/inloggen.php",
data: {
loginform: loginform
},
success: function(data) {
var obj = JSON.parse(data);
var arrayspot = 0;
for (var i = 0; i < obj.length; i++) {
var status = obj[i].status;
var field = obj[i].field;
var $errorveld = $('input[name="' + field + '"]').parent();
if (status == 'error') {
var message = obj[i].message;
$errorveld.addClass('invalid-input');
$errorveld.next('.inputerror').remove();
$errorveld.after('<div class="inputerror"><i class="fas fa-arrow-up"></i> ' + message + '</div>');
} else if (status == 'success') {
$errorveld.next('.inputerror').remove();
$errorveld.removeClass('invalid-input');
}
var arrayspot = parseInt(i);
}
if (obj[arrayspot].totalstatus == 'error') {
$("#loginresult").removeClass('positiveresult').show().empty().append(obj[arrayspot].totalmessage);
} else if (obj[arrayspot].totalstatus == 'success') {
window.location.replace("https://website.nl/new/");
}
}
});
});
Также обратите внимание, что я немного прибрался в логи c, удалив ненужные ()
вокруг свойства data
, а также кэшировал селектор $('input[name="' + field + '"]').parent()
.
Наконец, если MIME-тип ответа установлен правильно, вам не нужно вручную вызывать JSON.parse(data)