当用户点击表格底部div的任何一行时,我希望这样。我将该行的id插入隐藏
字段数组。因此用户可以选择多行。我想要插入id到隐藏字段数组
当点击事件将被调用..
我的HTML代码是
<div id="originator_rates">
<% unless @orig_codes.blank? %>
<% @orig_codes.each do |code| %>
<div id="<%= code.id %>_" onclick="rate_entry_select_originator('<%=code.id%>')" class="rate_select">
<%= hidden_field_tag 'code_id[]', :id => 'code_id' %>
</div>
<%end%>
<div>
我的js代码是
function rate_entry_select_originator(code_id) {
$('#code_id').push(code_id); //how i push values into array
}
答案 0 :(得分:0)
如果要维护代码ID列表,则不要管理多个隐藏字段,而是管理单个字段(id为CSV值)。
尝试并做出以下更改:
更改为javascript函数的传递值
<div id="<%= code.id %>_" onclick="rate_entry_select_originator(this)" class="rate_select">
在开始循环之前添加。
<%= hidden_field_tag 'code_ids', :id => 'code_ids' %>
修改你的javascript函数:
function rate_entry_select_originator(code_id) {
var code_id_val = $('#code_ids').val();
var code_id_arr = code_id_val.split(',');
var code_id = $(this).attr('id');
if($(this).hasClass("color_class"))
{
$(this).addClass("color_class");
$('#code_ids').val(code_id_val+','+code_id);
}
else
{
$(this).removeClass("color_class");
// To remove element from aaray
code_id_arr = jQuery.grep(code_id_arr, function(code_id) {
return value != removeItem;
});
$('#code_ids').val(code_id_arr.join(','));
}
}
Please correct some errors , I didn't run it.
Hope that will help.
答案 1 :(得分:0)
你不能使用hidden_field array.rather而不是使用单个隐藏字段并以逗号分隔推送值。