Xax*_*xum 16 forms submit ruby-on-rails-3
我有我的Ajax工作,内置Rails javascript,提交按钮.但是,当我更改下拉框的值并取消按钮时,我希望它提交.在我的研究中,我发现了什么看起来是正确的解决方案,但我没有得到服务器的请求.这是我的下拉表单代码,请注意它在我添加之前仍然有提交按钮:onchange:
<% form_tag('switch_car', :method => :put, :remote => true) do %>
<div class="field">
<label>Car Name:</label>
<%= select_tag(:id, options_from_collection_for_select(active_cars, "id", "name"),
:onchange => ("$('switch_car').submit()"))%><%= submit_tag "Switch Car" %>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
这是生成的HTML:
<form accept-charset="UTF-8" action="switch_car" data-remote="true" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓" />
<input name="_method" type="hidden" value="put" />
<input name="authenticity_token" type="hidden" value="PEbdqAoiik37lcoP4+v+dakpYxdpMkSm7Ub8eZpdF9I=" />
</div>
<div class="field">
<label>Car Name:</label>
<select id="id" name="id" onchange="$('switch_car').submit()">
<option value="9">Truck</option>
<option value="10">Car</option>
</select>
<input name="commit" type="submit" value="Switch Car" />
</div>
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
kon*_*yak 20
用这个替换你的onchange,
onchange: "this.form.submit();"
Run Code Online (Sandbox Code Playgroud)
gam*_*ela 12
this.form.submit()如果表单正在使用中remote: true,rails-ujs则无效.在这种情况下,将定期提交而不是XHR.
相反,你应该:
onchange: 'Rails.fire(this.form, "submit")'
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读更多细节.
这是我能够做到的.我使用:name =>"switch_car"将表单命名为switch_car,并使用以下javascript.
:onchange => ("javascript: document.switch_car.submit();")
Run Code Online (Sandbox Code Playgroud)
我仍然在寻找更好的答案,所以如果我找到了什么,我会更新.由于某种原因,这不使用submit .js.它将其作为HTML处理,而不像使用AJAX仅更新更改的页面元素的提交按钮.但这是迄今为止我能找到的最好的.
这是一个老问题,但以上答案都不适合我。它们都会产生一个 text/html 请求。
以下作品,例如(隐藏类设置CSS显示:无):
<%= form.radio_button :tier_id, tier.id, onchange: "$('#submit-button-id').click();" %>
Run Code Online (Sandbox Code Playgroud)
和...一起:
<%= form.submit "Save changes", id: 'submit-button-id', class: 'hide' %>
Run Code Online (Sandbox Code Playgroud)
取决于您使用的js库:
原型: :onchange => ("$('switch_car').submit()")
jQuery的: :onchange => ("$('#switch_car').submit()")
如果您使用默认值并且rails版本低于3.1,则prototype是默认库.
| 归档时间: |
|
| 查看次数: |
25733 次 |
| 最近记录: |