Форма запроса Ajax не отправляется - PullRequest
0 голосов
/ 02 декабря 2011

Я загружаю картинки и радиокнопки с помощью 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 %>

Контроллер - 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 %> 

1 Ответ

0 голосов
/ 02 декабря 2011

Насколько мне известно, вы не можете вложить form_for, так как вы не можете вложить теги формы.Вы также не должны использовать более одной кнопки отправки на форму.

Возможно, я бы попробовал что-то вроде

link_to "Get pictures", new_foo_path, :remote => true

, заменив содержимое через ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...