问题是我有一个远程表单,根据条件,id 喜欢转换为非远程表单(使用 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”,但它仍然'作为 JS'
问题是,我还需要在 HTML 中进行哪些更改,以便可以非 xhr 提交表单?它与标题有关吗?