Вставьте значения в массив скрытых полей, используя Jquery в rails 3 - PullRequest
0 голосов
/ 03 апреля 2012

Я хочу, чтобы, когда пользователь нажимал на любую строку таблицы базы div, я вставлял идентификатор этой строки в массив скрытых полей

.Следовательно, пользователь может выбрать несколько строк. И я хочу вставить идентификатор в массив скрытых полей

, когда будет вызвано событие щелчка ..

Мой 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


       }

Ответы [ 2 ]

0 голосов
/ 12 апреля 2012

Вы не можете сделать массив hidden_field.rather, чем вы используете одно скрытое поле и толкаете значения в нем через запятую.

0 голосов
/ 03 апреля 2012

Если вы хотите сохранить список идентификаторов кода, тогда вместо управления несколькими скрытыми полями управляйте одним (идентифицируйте как значение 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. 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...