Всем привет!
Задача стоит следующая: реализовать AJAX отправку формы, используя jQuery и компонент "form.result.new".
Если это делать через serialize - все работает и проблем не возникает (привожу пример кода)
Но в форме имеется поле "Прикрепить файл", поэтому приходится использовать formData. В данном случае получается ерунда)
Краткий код компонента "form.result.new"
Может кто сталкивался с подобной задачей и может натолкнуть на путь истинный?
Задача стоит следующая: реализовать AJAX отправку формы, используя jQuery и компонент "form.result.new".
Если это делать через serialize - все работает и проблем не возникает (привожу пример кода)
| Код |
|---|
var $btn_name = $(this).find('button[type="submit"]').attr('name');
var $btn_val = $(this).find('button[type="submit"]').attr('value');
var $dataForm = $(this).serialize() + "&" + $btn_name + "=" + $btn_val;
$.ajax({
url: $(this).attr('action'),
type: 'post',
context: this,
data: $dataForm,
success: function(response){
console.log(response);
}
});
|
Но в форме имеется поле "Прикрепить файл", поэтому приходится использовать formData. В данном случае получается ерунда)
| Код |
|---|
var formData = new FormData(this);
$.ajax({
url: $(this).attr('action'),
type: 'post',
data: formData,
cache: false,
processData: false,
contentType: false,
success: function(response){
console.log(response);
}
});
|
Краткий код компонента "form.result.new"
| Код |
|---|
<?if ($arResult["isFormNote"] != "Y")
{
?>
<fo rm class="ajax-form" name="<?=$arResult["WEB_FORM_NAME"]?>" action="<?=POST_FORM_ACTION_URI?>" method="POST" enctype="multipart/form-data" novalidate>
<input type="hidden" name="WEB_FORM_ID" value="<?=$arParams["WEB_FORM_ID"]?>">
<?=bitrix_sessid_post()?>
<!-- Внутри находятся поля формы -->
<?=$arResult["FORM_FOOTER"]?>
<?
} //endif (isFormNote)
else {
?>
<?=$APPLICATION->RestartBuffer();?>
<?=FormatHelper::Success('Спасибо! Ваша заявка принята!');?>
<?die();?>
<?
}
|
Может кто сталкивался с подобной задачей и может натолкнуть на путь истинный?
весь приводить не буду, скорее всего вам помогут следующие строки