2017-03-21 4 views
0

ラジオボタンを選択すると、新しいタブ(ナビゲーションタブ付きのブートストラップパネル)が作成され、そのタブにi選択されたラジオボタンに対応する詳細を登録することができる。例えば、ラジオボタンを選択すると、新しいタブが作成され、そのタブに行くと、名前や体重などを入力できます。ラジオボタンを選択すると、新しいタブが作成されます再び。remote:radio_button /ラジオボタンを使用しているレールでtrueを選択した場合はnoマークを選択

これは私の好みのコードです:

<input type="radio" name="id" value="<%= row.id %>" onclick="document.location.href='<%= path_name %>" data-remote="true"> 

しかし、悲しいことに、データのリモート=「true」が動作していないと、新しいタブを作るdoesntの。

私はこのコードを使用して実装する方法アラウンド実測値:

<% @foo.each do |row| %> 
    <%= link_to(pathname, :remote => "true") do %> 
     <input type="radio" name="id" value="<%= row.id %>"> 
    <% end %> 
<% end %> 

ただし、このコードを使用して、ラジオボタンは、(それが選択されていることを示し何らマークが存在しない)を選択することができません。

誰でもリモート= "真の"仕事をする方法や、ラジオボタンを選択する方法を教えてください。

+0

jQuery UJSは単一の入力ではなくフォームまたはリンクで動作します。そのユーティリティ - あなた自身のJavaScriptを書くための完全な置換ではありません。入力上の 'change'イベントにバインドするハンドラをjavascriptで記述するだけです。 – max

答えて

0

jQuery UJSはフォームやリンクで動作します。単一の入力ではありません。しかし、jQueryを使ってイベントハンドラを書くことは、とても簡単です。クライアント側の代わりに、インラインonclickハンドラにデータを渡すために属性data

<%= radio_button_tag :id, row.id, data: { href: path_name }, class: 'remote-input' %> 

使用。

# place this in 
# app/assets/javascripts/ 
$(document).on("change",".remote-input", function(){ 
    var uri = $(this).data('href'); 
    if (uri){ 
    window.location = uri; 
    } 
    // or whatever you want to do. 
}); 
関連する問題