2

select_tagRails 3.1 でオプションが選択 (変更) されたら、AJAX リクエストを送信したいと考えています。使用できます:remote=>trueか、:onchange => remote_function()または他の方法がありますか?

4

3 に答える 3

6

これは間違いなく jQuery を使用して行う必要があります (可能な限りクリーンに保つための控えめなアプローチを使用します)。.js ファイルには、次のようなものが必要です...

$('#select_tag_id').change(function(){
  $ajax({
    url: "remote_action_in_your_controller",
    type: "GET",
    data: {select_tag_value: $('#select_tag_id option:selected').text()},
  })
});

これは、コントローラーでリモート アクションを呼び出したいだけの場合と同じくらい簡単です (選択したオプションの値を渡したことに注意してください。おそらく、その値で何かを実行したいからです)。ajax 呼び出しの実行後に何かを行う必要がある場合は、succesオプションを使用します。お役に立てれば。

于 2012-07-24T16:15:22.803 に答える
1

JQueryでそれを行う必要があります。ドキュメントの準備ができたら、次のようにします。

$('#your_select_tag').change(function() {
  $.ajax({ type: "GET",   
           url: "http://your_url/",  
           success : function(text) {
              alert('success')
           }
  });
});

ドキュメントを参照してください: http://api.jquery.com/change/およびhttp://api.jquery.com/jQuery.ajax/

于 2012-07-23T18:43:10.600 に答える
1

remote: truedata-remote="true"html 要素に追加します。select_tagこれをオプションの CSS クラスとして追加するだけです。

<%= select '', '',  @coaches, {}, { data: {remote: true } } %>

Rubyフレンドリーではないdata: { remote: true }ため、 が使用されていることに注意してください。"data-remote"

于 2016-06-14T19:58:31.647 に答える