2011-10-19 8 views
2

ボタン(submit_tag付き)ではなく、イメージ(image_submit_tag)ではなくフォームでサブミットアクションを作成するにはどうすればよいですか?ボタンやイメージを表示しないsubmit_tag

私はリンクがGET要求ではなく、ポスト要求されているので、あなたは、JavaScriptでそれを行う必要があるだろう

おかげ

答えて

3

リンクのようにクリック可能なテキストであることを提出したいと思います。あなたが次のコードを持っているとしましょう:

<%= form_for @post, :html => { :id => 'form' } do |f| %> 
    <div class="field"> 
    <%= f.label :title %> 
    <%= f.text_field :title %> 
    </div> 
    <div class="field"> 
    <%= f.label :body %> 
    <%= f.text_area :body %> 
    </div> 
    <div class="actions"> 
    <a id="submit">Submit</a> 
    </div> 
<% end %> 

次に、あなたのjavascriptファイルの1つに以下を追加する必要があります。 < Rails 3.1を使用している場合は、application.jsにこれを追加するだけです。 Rails 3.1を使用している場合は、assets/javascriptsディレクトリのjsファイルの1つに追加します。つまり、メソッドオプションをlink_toメソッド呼び出しに渡してPOSTを使用することができます。しかし、JavaScriptを使用せずにこれを行うだけで、フォームデータは送信されません。だから、あなたは上記をやるか、JavaScript文字列を使ってURLにデータを追加する必要があります。ここで

+0

ありがとう。 application.jsに追加すると、すべてのビュー、ページなどに適用されますか? –

+0

デフォルトでは、application.jsがレイアウトファイルに含まれています。あなたが見ているなら、 '<%= javascript_include_tag:defaults%>'などの行をチェックしてください。デフォルトのシンボルには、さまざまなjsライブラリとapplication.jsが含まれています。 Rails 3.1以外の場合は、上記のコードを動作させるためにアプリケーションにjQueryを追加する必要があります。 – agmcleod

0

が、私はそれをやった一つの方法だ:

<a><%= submit_tag "Submit", class: "fake-button" %></a> 

次に、スタイルを変更します。

.fake-button { 
    padding: 0; 
    border: none; 
    display: inline; 
} 

だから、技術的にはまだボタンのですが、非常に多くのリンクのように見えます。しかし少しハッキーです:)

関連する問題