form_remote_tag в пределах remote_form_for - PullRequest
0 голосов
/ 30 марта 2011

У меня есть сценарий, в котором мне нужно включить форму ajax в другую форму ajax, чтобы позволить пользователю выбрать фотографию для сохранения. Кажется, мне нужно использовать form_remote_tag с link_to_remote, чтобы отправить его в remote_form_for. Внутренний form_remote_tag теперь работает, но теперь внешний remote_form_for не работает. Вот что у меня есть:

   <% remote_form_for [@list, @term] do |f| %>           
     <div id="upload_image" onclick="$('image_upload_form').show()">upload image</div>
     <div id="image_upload_form" style="display:none">   
        <div id="flickr_search">
          <% form_remote_tag(:url => { :controller => "images", :action => "flickr_search" }) do %>
              <%= text_field_tag :keywords %>
              <%= link_to_remote "save", :url => {:controller => "images", :action => "flickr_search" }, :submit => "flickr_search" %>
          <% end %>
        </div>
     </div>
     <%= f.text_area :definition, :size => "33x3", :class  => "textarea", :id => "definition" %>
     <%= f.submit "Save" %>
    <% end %>

У кого-нибудь есть идеи, как заставить эти две формы хорошо играть вместе?

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Форма с в форме не является допустимым HTML и следует избегать. Это вызовет у вас всевозможные проблемы (если вы сможете заставить его работать вообще).

Полагаю, вы могли бы заменить свою внутреннюю форму некоторым JavaScript / ajax, который обеспечивает те же функции без тегов формы. (Представьте, что при щелчке запускается ajax-запрос, который открывает оверлейное окно, в котором выполняется поиск по flickr, а затем помещает URL-адрес изображения в поле формы.)

Вы также можете подумать о том, чтобы сделать это двухэтапным процессом.

Удачи

0 голосов
/ 30 марта 2011

У вас не должно быть вложенных форм.
Похоже, вы хотите передать text_field значение для какого-либо действия.Вы можете легко добиться этого, используя опцию :with в link_to_remote.
. Таким образом, ваша внутренняя форма будет удалена, и вы можете иметь link_to_remore, записанный как:

Если вы используете jQuery:

<%= link_to_remote "save", :url => {:controller => "images", :action => "flickr_search" }, :with => "'keywords='+$('#keywords').val()" %>

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