我用Ajax请求加载图片和单选按钮。之后我想提交此单选按钮,如果我点击<%= sg.submit'确认步骤1'%>。提交适用于所有形式,但不适用于Ajax。有什么问题?
信息:Ajax内容被加载到div。
查看 - new.html.erb
<%= form_for :site, :html => { :id => "form_all" } do |sg| %>
...
<%= sg.submit 'Confirm Step 1' %>
<%= sg.text_field :subject %>
...
<div id="pics_<%= deal.DealID %>">
</div
<%= link_to "Get pictures", {:action => "new", :format => :js }, :remote => true %>
<% end %>
Controller - site_controller.rb
def new
respond_to do |format|
format.html { }
format.js {}
end
end
JS - new.js.erb
$("#hidden_div").html('<%= escape_javascript( render :partial => "hidden" ) %>');
var div_name = $("#hidden_field").val();
var substr = div_name.split('"');
$(substr[1]).html('<%= escape_javascript( render :partial => "pic" ) %>');
JS - application.hs
jQuery.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})
jQuery.fn.submitWithAjax = function() {
this.submit(function() {
$.post(this.action, $(this).serialize(), null, "script");
return false;
})
return this;
};
$(document).ready(function() {
$("#form_all").submitWithAjax();
})
部分 - _pic.html.erb
<% @Pics.each do |pic| %>
<a href="<%= pic.PublicServerURI %>" target="_blank"><%= image_tag(("#{pic.PublicServerURI}"), :size => "100x80") %></a>
<input value="<%= pic.PublicServerURI %>" id="site_pics" name="pics[DealID[<%= @DealID %>]]" type="radio">Use Deal with that Picture<br>
<% end %>
答案 0 :(得分:0)
由于您无法嵌套表单标记,因此无法将form_for
嵌套到我的知识中。您也不应该为每个表单使用多个提交按钮。
我可能会尝试像
这样的东西link_to "Get pictures", new_foo_path, :remote => true
通过回复替换内容。