小编Sam*_*egg的帖子

在Rails 3,HAML中使用JS将<form>从远程更改为非远程

问题是我有一个远程表单,基于条件,id喜欢转换为非远程表单(使用UJS),然后提交.请注意表单上传了文件.

这是详细信息:我最初使用了远程表单

= form_for @myobj, :url => {:action=>"remoteAction", :controller=>"myobjects"}, :remote => true do |f|
... (f.fields....)
Run Code Online (Sandbox Code Playgroud)

它产生HTML:

<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" data-remote="true" action="/remoteAction">
Run Code Online (Sandbox Code Playgroud)

当我点击提交时,正如预期的那样,表单被提交为"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');
Run Code Online (Sandbox Code Playgroud)

它成功地将页面上的HTML(通过Firebug见证)更改为:

<form id="new_myobj" class="new_myobj" method="post" accept-charset="UTF-8" enctype="multipart/form-data" action="/myobjects/regularAction">
Run Code Online (Sandbox Code Playgroud)

因为形式包含f.file_field,我必须提交尽可能多所以图像可以上传,我不能提交"AS JS"现在,当我点击提交,控制器行动"regularAction"确实叫,但它仍然'AS JS'

问题是,我还需要在HTML中进行哪些更改,以便可以非xhr提交表单?它与标题有关吗?

forms haml ujs ruby-on-rails-3

15
推荐指数
2
解决办法
3422
查看次数

如何防止对象id打印到屏幕

如何使用HAML模板从呈现对象ID中阻止视图中的部分表单?例如,my show.html.hamlfor Users包含=render 'shortlists'其候选名单列表:

%p
Shortlists:
= @shortlists.each do |s|
  = render :partial => 'shortlists', :locals => { :s => s }
%p
Run Code Online (Sandbox Code Playgroud)

我在屏幕上看到的是:

Shortlists:
 Shortlist A has 0 items
 Shortlist B has 5 items
"#<Shortlist:0xa95fa38>#<Shortlist:0xa95f54c>"
Run Code Online (Sandbox Code Playgroud)

我该如何预防?

"#<Shortlist:0xa95fa38>#<Shortlist:0xa95f54c>"
Run Code Online (Sandbox Code Playgroud)

从渲染?

ruby haml ruby-on-rails

0
推荐指数
1
解决办法
131
查看次数

标签 统计

haml ×2

forms ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

ujs ×1