Jquery 如何为Rails 3.2索引页中的每一行添加复选框?
我们想在Rails索引页面的每一行中添加一个复选框来标记该行。此复选框不是对象的一部分(数据库中没有布尔复选框)。当显示索引页面时,用户可以选中该框,在以下过程中触发该行的事件: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
#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事件侦听器添加到未附加到表单的复选框中?希望了解更多有关此想法的信息。我留下一个答案,但我只想添加一个