У меня есть это в моем коде jQuery:
$(this).parents('form').submit();
Проблема в том, что в первый раз она работает без перезагрузки страницы, но со второго раза, когда я ее называю, страница перезагружается. Я читал Почему Ajax работает правильно при первом запросе, но возвращает частичное представление на новой странице при втором запросе? и там написано:
Поведение «работает только в первый раз» типично для ситуации, когда контент добавляется динамически, но события привязываются непосредственно к элементам (например, при готовности DOM).
Я пытался сделать что-то подобное, чтобы использовать делегирование события для события submit () формы:
$(document).on('submit', 'form', function(){
// Something here?
});
Но я не уверен, что добавить в эту функцию (), так как все, что мне нужно, это отправить форму, но с AJAX, чтобы страница не перезагружалась, в значительной степени, что я уже могу достичь в первый раз с $(this).parents('form').submit();
. Есть идеи? Спасибо.
ОБНОВЛЕНИЕ 1:
Это триггер поля выбора (событие onChange пытается отправить форму):
$(document).on('change', 'form select.js-admin-index-autosubmit', function() {
if ($('.js-checkbox-list:checked').val() != 1 && $(this).val() >= 1) {
alert(__l('Please select atleast one record!'));
return false;
} else if ($(this).val() >= 1) {
if (window.confirm(__l('Are you sure you want to do this action?'))) {
$(this).parents('form').submit();
} else {
$(this).val('');
}
}
});
Когда я изменяю значение, чтобы выбрать действие из поля выбора, я получаю это сообщение: Are you sure you want to do this action?
Первый раз, когда он все делает с AJAX (отправка формы). Но со второго раза он работает правильно, но перезагружает страницу. Это следует делать с AJAX всегда, без перезагрузки страницы, не только с первого раза. В частности, это строка, которая выполняется для отправки формы:
$(this).parents('form').submit();
Я пытаюсь понять, почему эта же строка работает с AJAX в первый раз, но со второго раза перезагружает страницу.