Проблема в том, что у меня есть удаленная форма, которую, в зависимости от условия, я хотел бы преобразовать в не удаленную форму (используя 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'
Теперь, когда я нажимаю «Отправить», действие контроллера «обычное действие» действительно вызывается, но оно все еще «КАК JS»
вопрос в том, что еще мне нужно изменить в HTML, чтобы форму можно было отправлять не в формате xhr? это связано с заголовками?