答えて
「正解」はこの文脈では難しい単語です。あなたはなぜ単にbutton
要素を取ってリンクのように見せているのではないかと尋ねることができますか?
とにかく - 普通のHTMLでこれを達成することはできません(私の知る限りでは)。たとえば、Javascriptフレームワークを使用します。 jQueryのは、あなたは、単にこのような何かを行うことができます:
$('a').click(function(){
$('form').submit();
return false;
});
のRails 2.3.x以降では、:submit
パラメータを指定してみましょうlink_to_remote
ヘルパーを持っていた(= DOM要素のIDは、デフォルトでは親フォームです)。したがって、あなたは次のように書くことができました:
link_to_remote 'submit', :url => {…}, :submit => "my_form"
しかし、Rails 3のUJSへのプッシュでは、このヘルパーはなくなりました。 Railsの3で
記事リンクは広告のために壊れている/ハイジャックされています。 –
リンクを削除しました。 – polarblau
は、link_to_remote
ヘルパーがなくなっているが、それはあなたのケースで
link_to 'submit me', url_for(@post), {:remote => true, :class => 'submit_me'}
に置き換えられています、あなたは、おそらくのようなので、あなたのフォームはAJAXをしたい:
<%= form_for @post, :remote => true do |f| %>
<%= f.label :title %><br>
<%= f.text_field :title %>
<p><%= f.submit %></p>
<% end %>
コンパニオンリンク付き:
link_to 'submit me', '#', :class => 'submit_me'
次に、 .jsファイル内のページの本文に含ま:
$('.submit_me').click(function() {
$('form').submit();
return false;
});
アイデアがここにリストされているようAJAXリクエストにリンクやフォームを回すよりも複雑何かが、jQueryのコールバックを行うべきであるということである。
https://github.com/rails/jquery-ujs/wiki/ajax
そして、あなたが本当にgo here for a great 2-part article on it.
jQueryを使って、インタラクティブなAJAXリクエストに取得したい場合は、このワンライナーは、シンプルな形のために正常に動作します。
もちろん、jqueryを使用する必要はありません。フォームのDOM要素を見つけるだけで問題なく動作します。
<%= link_to t("translate.submit"), "#", class: "make it beautiful", :onclick=>"document.getElementById('your_form_id').submit()" %>
このように、ajaxを使用しないで、単純なフォーム送信を行います。
私はこのアプローチを使いました。ただし、 'return false;'を追加することもできます。 onclickの最後まで:リンクが守られていないことを確認する。 –
あなたは、アプリケーションのヘルパーに以下を追加することができます。
def link_to_submit(text)
link_to_function text, "$(this).closest('form').submit()"
end
は、その後、あなたのビューファイル内で、あなただけの
link_to_submit 'Submit Form'
を呼び出すことができ、リンクは、フォームの子でなければなりません。
ニース!これが存在していたことさえ知りませんでした。 – Jurgen
非常に良い!これは間違いなく素晴らしい作品です! – RubyFanatic
Googleからここに来た人には、この回答で見つけた改善点を見てください。 – Jazz
Google経由でここに来た人には、私はZequezの答えを改善しました。代わりに、彼が与える方法、代わりにアプリケーションヘルパーにこのメソッドを追加する:
def link_to_submit(*args, &block)
link_to_function (block_given? ? capture(&block) : args[0]), "$(this).closest('form').submit()", args.extract_options!
end
その後、Zequezは、あなたがちょうどあなたのビューでこれを行うことができ、単純なリンクについては、述べたように:
<%= link_to_submit 'Submit Form' %>
。もっと複雑なボタンの場合は、リンク内で使用するHTMLオプションとブロックを渡すことができます。あなたはTwitterのブートストラップを使用する場合は、例えば、これは書式設定、あなたはCSSクラスを追加することができますし、アイコン:
<%= link_to_submit(class: 'btn btn-primary') do %>
<strong>Submit</strong> the Form <i class="icon-arrow-right"></i>
<% end %>
jQueryのコードは限りリンクは、フォームの子であるとして動作します(つまり、限り、ありますlink_to_submit
はform_for
ブロック内のどこかから呼び出されます)。
- 1. GETパラメータを含むリンクにPOSTフォームを送信
- 2. Rails 3が複数のレコードを含むフォームを提出する
- 3. Rails:搬送波を含むネストされたフォーム
- 4. 角度を使用してPOSTアクションを含むフォームを送信
- 5. フィールド値としてURLを含むフォームを送信する
- 6. インフォボックス内にajaxを含むフォームを送信するGoogleMaps API
- 7. 特殊文字を含む値でフォームを送信する
- 8. テキスト入力とファイル入力を含むフォームを送信
- 9. ファイルを含むフォームをFOSRestBundleコントローラに送信する方法
- 10. リンクからリンクをロードしても、Railsフォームは送信されません。
- 11. Railsフォーム送信の問題
- 12. のRails 3:SQL関数を含むクエリ
- 13. form_helpers Rails 3 - ループ内のオブジェクトを含む
- 14. スラックのリンクを含む自動返信
- 15. リンクのonclickフォームを送信する
- 16. Rails 3 - フォーム、アクションに基づいたカスタム送信ボタン?
- 17. フォームに送信リンク付きの値を送信
- 18. rails、送信フォームのラジオボタンを選択
- 19. プロトタイプにAjaxを含むファイルを送信
- 20. symfony 3フォームをajaxで送信する
- 21. Rails 3 - 電子メールを送信するためのボタン/リンクを作成する
- 22. 外部の左結合(Rails含む)3
- 23. Rails 3 - aを含むネストされたフォームは、チェックボックスとの関連が多い
- 24. オートテストを含むRailsエンジンテストを含む
- 25. rails 3 form_tagリモートで送信されない送信の詳細
- 26. Rails 3:別のモデルのshowメソッド内でフォームを送信する方法
- 27. Rails 3:ユーザープロフィールからメッセージを送信するための連絡フォーム
- 28. アポストロフィを含むフォーム送信データに使用され、空白を返します。
- 29. フォーム送信に依存するデータを含むコンポーネントをロードする
- 30. ユニットは複数の送信ボタンを含むDjangoフォームをテストします
いくつかのコードを追加して起動することができます。 – shingara
コードサンプルを追加しました。 –