Проблема в том, что у меня есть удаленная форма, которую, исходя из условия, я хотел бы преобразовать в неудаленную форму (используя UJS), а затем отправить.
обратите внимание, что форма имеет загрузку файла.
Вот подробности: я первоначально визуализировал удаленную форму, используя
= form_for @myobj, :url => {:action=>"remoteAction", :controller=>"myobjects"}, :remote => true do |f|
... (f.fields....)
, которая создает HTML:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" data-remote="true" action="/remoteAction">
когда я нажимаю кнопку «Отправить», как и ожидалось, форма отправляется «AS JS».
в действии контроллера я выполняю некоторую проверку полей внутри отправленной формы.
Если все проверки пройдены, я выполняю следующий шаблон .js.haml:
$('form#new_myobj').removeAttr("data-remote");
$('form#new_myobj').attr('enctype', 'multipart/form-data');
$('form#new_myobj').attr('action', '/myobjects/regularAction');
, который успешно изменяет HTML на странице (засвидетельствовано через Firebug) на:
<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" enctype="multipart/form-data" action="/myobjects/regularAction">
, поскольку форма содержит поле f.file_field, я должен отправить как составной, поэтому изображение можно загрузить, и я не могу отправить «AS JS»
теперь, когда я нажимаю кнопку «Отправить», действие контроллера «regularAction» действительно вызывается, но это все еще «AS JS»
. Вопрос в том, что еще мне нужно изменить в HTML, чтобы форму можно было отправить без xhr. ? связано ли это с заголовками?