如何在 rails 中使用 remote:true 使用 radio_button/ 单选按钮在选择时没有标记
How to use remote:true in rails using radio_button/ radio button no mark when selected
我想制作一个单选按钮,当 selected 时,它将创建一个新选项卡(bootstrap 带有导航选项卡的面板),在该选项卡中,我可以注册与selected 单选按钮。例如,当我选择水果单选按钮时,它会创建一个新选项卡,当我转到该选项卡时,我可以输入它的名称、重量等...当我选择 select 肉类单选按钮时,它将重新创建一个新标签。
这是我的首选代码:
<input type="radio" name="id" value="<%= row.id %>" onclick="document.location.href='<%= path_name %>" data-remote="true">
但遗憾的是,data-remote="true" 无法正常工作,也无法创建新标签页。
我找到了使用以下代码实现它的方法:
<% @foo.each do |row| %>
<%= link_to(pathname, :remote => "true") do %>
<input type="radio" name="id" value="<%= row.id %>">
<% end %>
<% end %>
但是,使用此代码,单选按钮不能 selected(没有标记表明它是 selected)。
任何人都可以帮助我如何使远程="true"工作或使 select 单选按钮可见。
jQuery UJS 使用表单或链接 - 而不是单一输入。然而,用 jQuery 编写事件处理程序真的很简单。
<%= radio_button_tag :id, row.id, data: { href: path_name }, class: 'remote-input' %>
使用 data
属性将数据传递到客户端而不是内联 onclick
处理程序。
# 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.
});
我想制作一个单选按钮,当 selected 时,它将创建一个新选项卡(bootstrap 带有导航选项卡的面板),在该选项卡中,我可以注册与selected 单选按钮。例如,当我选择水果单选按钮时,它会创建一个新选项卡,当我转到该选项卡时,我可以输入它的名称、重量等...当我选择 select 肉类单选按钮时,它将重新创建一个新标签。
这是我的首选代码:
<input type="radio" name="id" value="<%= row.id %>" onclick="document.location.href='<%= path_name %>" data-remote="true">
但遗憾的是,data-remote="true" 无法正常工作,也无法创建新标签页。
我找到了使用以下代码实现它的方法:
<% @foo.each do |row| %>
<%= link_to(pathname, :remote => "true") do %>
<input type="radio" name="id" value="<%= row.id %>">
<% end %>
<% end %>
但是,使用此代码,单选按钮不能 selected(没有标记表明它是 selected)。
任何人都可以帮助我如何使远程="true"工作或使 select 单选按钮可见。
jQuery UJS 使用表单或链接 - 而不是单一输入。然而,用 jQuery 编写事件处理程序真的很简单。
<%= radio_button_tag :id, row.id, data: { href: path_name }, class: 'remote-input' %>
使用 data
属性将数据传递到客户端而不是内联 onclick
处理程序。
# 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.
});