У меня есть данные формы, которые захватили видео, фото, аудио и текстовые данные. Количество этих полей является динамическим, поэтому у меня может быть несколько видео, аудио полей и т. Д., И это приводит к сбою или замедлению формы при отправке. В настоящее время я делаю отправку с помощью обычной формы действия отправки без ajax.
Я хочу пересмотреть поведение, чтобы я мог отправлять поля формы по одному запросу за раз, и я мог отображать прогресс на стороне клиента примерно так:
Basic information has been saved.
Audio 1 uploaded.
Video 2 uploaded.
Video 3 currently uploading ...
Video 4 pending.
Audio 5 pending.
Вот как выглядят данные формы, когда я запускаю form.serializeArray()
0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "data[name]", value: "a"}
3: {name: "response[100]", value: "data:video/webm;base64,...."}
4: {name: "response[101]", value: "text data here"}
5: {name: "privacy_policy", value: "1"}
Теперь я хочу разделить этот массив для отдельного запроса формы Ajax, например, ff:
Запрос 1 - Основная информация
0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "data[name]", value: "a"}
Запрос 2 - Видеоданные
0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "response[100]", value: "data:video/webm;base64,...."}
Запрос 3 - Текстовые данные
0: {name: "utf8", value: "✓"}
1: {name: "authenticity_token", value: "token data here"}
2: {name: "response[101]", value: "text data here"}
Теперь я хочу знать, есть ли встроенный способ в javascript для достижения этого способа измельчения массива. Что-то вроде
basic_info = formdata.remove(name, 'response')
.
Или нет? И мне нужно сделать это вручную, проходя через этот массив?
Спасибо