Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何为Rails 3.2索引页中的每一行添加复选框?_Jquery_Ruby On Rails_Ruby On Rails 3_Checkbox_Erb - Fatal编程技术网

Jquery 如何为Rails 3.2索引页中的每一行添加复选框?

Jquery 如何为Rails 3.2索引页中的每一行添加复选框?,jquery,ruby-on-rails,ruby-on-rails-3,checkbox,erb,Jquery,Ruby On Rails,Ruby On Rails 3,Checkbox,Erb,我们想在Rails索引页面的每一行中添加一个复选框来标记该行。此复选框不是对象的一部分(数据库中没有布尔复选框)。当显示索引页面时,用户可以选中该框,在以下过程中触发该行的事件: #objects/checkbox_index.html.erb <table> <tr> <th>CheckBox</th> <th>Object Name</th> <th>Object ID&l

我们想在Rails索引页面的每一行中添加一个复选框来标记该行。此复选框不是对象的一部分(数据库中没有布尔复选框)。当显示索引页面时,用户可以选中该框,在以下过程中触发该行的事件:

#objects/checkbox_index.html.erb    
<table>
  <tr>
    <th>CheckBox</th>
    <th>Object Name</th>
    <th>Object ID</th>
  </tr>
  <%= @objects.each do |obj| %>
    <tr>
      <td><%= checkbox %></td>
      <td><%= obj.name %></td>
      <td><%= obj.id %></td>
    </tr>
  <% end %>
</table>
有几个问题我们不太明白:

1. How to declare an array checkbox variable on the form and link it to each row of obj? We have been using `attr_accessor` to declare var for a form. 
2. How to retrieve each row on checkbox_index form and pass them back to controller?  We are using simple_form for new/edit. 

有谁能给我指出这种行为的好例子,或者建议我们应该思考什么?非常感谢。

解决方案之一是将Javascript事件侦听器添加到不属于表单的复选框中。如果要触发的操作是数据库调用,那么可以使用ajax来实现。不必坐下来编写所有的javascript代码,Ruby和伪javascript代码可能会如下所示:

@objects.each do |obj|
  some_event if obj.checked
end
红宝石

<% @objects.each do |obj| %>
    <%= check_box_tag, class: "checkbox" %>
<% end %>
$('#checkbox').on change {
    if selected == selected
        do what you are trying to do on $(this).element (like an ajax call)
    else
        undo what you did
    end
}

解决此问题的一个方法是将Javascript事件侦听器添加到不属于表单的复选框中。如果要触发的操作是数据库调用,那么可以使用ajax来实现。不必坐下来编写所有的javascript代码,Ruby和伪javascript代码可能会如下所示:

@objects.each do |obj|
  some_event if obj.checked
end
红宝石

<% @objects.each do |obj| %>
    <%= check_box_tag, class: "checkbox" %>
<% end %>
$('#checkbox').on change {
    if selected == selected
        do what you are trying to do on $(this).element (like an ajax call)
    else
        undo what you did
    end
}

解决此问题的一个方法是将Javascript事件侦听器添加到不属于表单的复选框中。如果要触发的操作是数据库调用,那么可以使用ajax来实现。不必坐下来编写所有的javascript代码,Ruby和伪javascript代码可能会如下所示:

@objects.each do |obj|
  some_event if obj.checked
end
红宝石

<% @objects.each do |obj| %>
    <%= check_box_tag, class: "checkbox" %>
<% end %>
$('#checkbox').on change {
    if selected == selected
        do what you are trying to do on $(this).element (like an ajax call)
    else
        undo what you did
    end
}

解决此问题的一个方法是将Javascript事件侦听器添加到不属于表单的复选框中。如果要触发的操作是数据库调用,那么可以使用ajax来实现。不必坐下来编写所有的javascript代码,Ruby和伪javascript代码可能会如下所示:

@objects.each do |obj|
  some_event if obj.checked
end
红宝石

<% @objects.each do |obj| %>
    <%= check_box_tag, class: "checkbox" %>
<% end %>
$('#checkbox').on change {
    if selected == selected
        do what you are trying to do on $(this).element (like an ajax call)
    else
        undo what you did
    end
}

为了识别你应该使用的每个复选框,它将返回到你的控制器和数组,其中包含你提交时检查的对象的所有ID,检查这段视频,这是我学习这项技术的地方,关于识别你应该使用的每个复选框,它将返回到您的控制器和阵列,其中包含您在提交时检查的对象的所有ID,检查这段视频,这是我学习这项技术的地方,考虑到识别您应该使用的每个复选框,它将返回到您的控制器和阵列,其中包含您在提交时检查的对象的所有ID,检查这段视频,这是我学习这项技术的地方,为了识别你应该使用的每个复选框,它将返回到你的控制器和数组,以及你提交时检查的对象的所有ID,检查这段视频,这是我学习这项技术的地方,关于

如果您只需要一种方法来获取信息/影响单击复选框的行,那么这可能会有所帮助

JS:


如果您只需要一种方法来获取信息/影响选中的行,那么这可能会有所帮助

JS:


如果您只需要一种方法来获取信息/影响选中的行,那么这可能会有所帮助

JS:


如果您只需要一种方法来获取信息/影响选中的行,那么这可能会有所帮助

JS:


似乎您希望使用Javascript而不是Ruby来监听事件。您是否考虑过将javascript事件侦听器添加到未附加到表单的复选框中?希望了解更多有关此想法的信息。我对此留下一个答案,但我只想补充一点,对此类内容使用attr_访问器是一个坏主意,您不知道如何判断attr_访问器是一个布尔值,因此如果您有1或1这样的值“布拉布拉“它将返回true,另一方面,像nil这样的情况将返回false,有一些用于管理此情况的宝石,它们将记住原始值,因此您可以为属性accesor确定true,并仅进行两个比较,例如是否更改,但这对于我理解的您想要的来说太过分了,敬请!似乎您希望使用Javascript而不是Ruby来监听事件。您是否考虑过将javascript事件侦听器添加到未附加到表单的复选框中?希望了解更多有关此想法的信息。我对此留下一个答案,但我只想补充一点,对此类内容使用attr_访问器是一个坏主意,您不知道如何判断attr_访问器是一个布尔值,因此如果您有1或1这样的值“布拉布拉“它将返回true,另一方面,像nil这样的情况将返回false,有一些用于管理此情况的宝石,它们将记住原始值,因此您可以为属性accesor确定true,并仅进行两个比较,例如是否更改,但这对于我理解的您想要的来说太过分了,敬请!似乎您希望使用Javascript而不是Ruby来监听事件。您是否考虑过将javascript事件侦听器添加到未附加到表单的复选框中?希望了解更多有关此想法的信息。我对此留下一个答案,但我只想补充一点,对此类内容使用attr_访问器是一个坏主意,您不知道如何判断attr_访问器是一个布尔值,因此如果您有1或1这样的值“布拉布拉“它将返回true,另一方面,像nil这样的情况将返回false,有一些用于管理此情况的宝石,它们将记住原始值,因此您可以为属性accesor确定true,并仅进行两个比较,例如是否更改,但这对于我理解的您想要的来说太过分了,敬请!似乎您希望使用Javascript而不是Ruby来监听事件。您是否考虑过将javascript事件侦听器添加到未附加到表单的复选框中?希望了解更多有关此想法的信息。我留下一个答案,但我只想添加一个