Моя форма похожа на эту демонстрацию
В.1 Я хотел бы преобразовать эту форму в ajax, но мне кажется, что в моем коде ajax чего-то не хватает. При отправке вообще ничего не делает.
Q2. Я также хочу, чтобы функция срабатывала при изменении, когда файл был выбран, чтобы не ждать отправки.
Q3. Я хочу, когда нажимаю кнопку «Следующий шаг». Все формы сохранить и перейти на следующую страницу.
мой клинок
<form method = "post" enctype = "multipart/form-data" action = "{{ route('update', auth()->id()) }}">
@csrf
@method('put')
<fieldset>
@include('Home.steps.step-1')
</fieldset>
<fieldset>
@include('Home.steps.step-2')
</fieldset>
<fieldset>
@include('Home.steps.step-3')
</fieldset>
<fieldset>
@include('Home.steps.step-4')
</fieldset>
<fieldset>
@include('Home.steps.step-5')
</fieldset>
<fieldset>
@include('Home.steps.step-6')
</fieldset>
</form>
js
$(document).ready(function (e) {
$('.btn-next').on('click',(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr("{{ route('update', auth()->id()) }}"),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
console.info("success");
console.info(data);
},
error: function(data){
console.info("error");
console.info(data);
}
});
}));
});
Я получаю эту ошибку в консоли.
Uncaught TypeError: конструктор FormData: аргумент 1 не реализует интерфейс HTMLFormElement.





Вам нужно указать элемент формы, а не кнопку
var formData = new FormData($('#form-id'));
@MahmoudKhosravi попробуй var formData = new FormData($('#form-id')[0]);
Это произошло потому, что вы создали свой FormData с ключевым словом this. Ключевое слово this используется для обозначения элемента, который активировал функцию javascript. В вашем случае это было нажатие кнопки, поэтому this будет ссылаться на кнопку. Если бы вы активировали свою функцию с помощью отправки формы, вы бы не столкнулись с этой ошибкой. Поэтому, когда вы создаете новый FormData, вам теперь нужно передать ему идентификатор вашего элемента формы, а не «это».
Я снова вижу эту ошибку. i.stack.imgur.com/JcntJ.png Моя проблема еще не решена/