1

しばらくの間、この問題を理解しようとしていて、jquery / javascriptを使用するのではなく、レールでこれを行う方法があるかどうか疑問に思っていました(ただし、jqueryを使用する試みは失敗しました。

異なるAPIを検索する2つのform_tagがあり、それぞれに独自のsubmit_tagがあり、正常に機能します。私が達成したいのは、1つのsubmit_tagを使用して、入力されたフォームを送信できるようにすることです。

   <h3>Search Movies</h3>
   <%= form_tag main_results_path, :method => "get", :id => 'submitMovie' do %>
   <%= text_field_tag 'search', nil, :placeholder => 'Enter Film Name Here.....', :id => 'movieForm' %>
   <%= submit_tag "search" %>

   <% end %>


  <h1>OR</h1>

  <h3>Search Albums</h3>
  <%= form_tag album_album_results_path, :method => "get", :id => 'submitAlbum' do %>
  <%= text_field_tag 'search', nil, :placeholder => 'Enter Artist Name here.....', :id => 'albumForm' %>
  <%= submit_tag "search" %>

  <% end %>

これはレールで可能ですか?

ありがとう

4

1 に答える 1

2

フォームの送信方法はRailsとは関係ありません。フォームはブラウザーによって処理されます。ボタンをクリックすると、そのボタンが属するフォームが常に送信されます。フォームの外にボタンが必要な場合は、Javascript/jQueryが最適です。

$(document).ready(function(){
    $('#yourButton').click(function(){
        var formToSubmit;
        if( $('#movieForm').val() ){
            formToSubmit='#submitMovie';
        }
        else if( $('#albumForm').val() ){
            formToSubmit='#submitAlbum';
        }
        if(formToSubmit!==null){
            $(formToSubmit).submit();
        }
        return false;
    });
});
于 2013-01-01T15:16:31.020 に答える