Всем привет!
Задача стоит следующая: реализовать 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();?> <? } |
Может кто сталкивался с подобной задачей и может натолкнуть на путь истинный?