Rails + Jquery + Как получить проверенные значения флажков в rails?

0

У меня есть флажки в цикле.

например..

<% (1..5).each do |chk| %>
  <%= check_box_tag 'chk',"#{chk}", :checked=>false %>
<% end %>

Я хочу получить идентификатор флажка, который все проверен.

Пожалуйста, помогите мне сделать это.

Заранее спасибо.

  • 0
    Где вы хотите получить это значение, на стороне клиента или на стороне сервера после отправки формы?
  • 0
    Метод jquery в порядке.
Показать ещё 3 комментария
Теги:
checkbox
ruby-on-rails-3

3 ответа

2
Лучший ответ

JQuery Link:

<script src="/jquery-1.11.0.min.js"></script>
<script src="/jquery-migrate-1.2.1.min.js"></script>

Попробуй это:

Код HTML:

<input id="chk_1" name="foo" type="checkbox" value="1" />chk1
<input id="chk_2" name="foo" type="checkbox" value="2" />chk2
<input id="chk_3" name="foo" type="checkbox" value="3" />ckh3
<input id="chk_4" name="foo" type="checkbox" value="4" />chk4
<input id="chk_5" name="foo" type="checkbox" value="5" />chk5
<button>Alert List</button>

JsCode:

(function( $ ){
      $.fn.valList = function(){
            return $.map( this, function (elem) {
                  return elem.value || "";
            }).join( "," );
      };
      $.fn.idList = function(){
            return $.map( this, function (elem) {
                  return elem.id || "";
            }).join( "," );
      };
})( jQuery );

$('button').click(function(){
    alert($("input:checked").valList()); 
    alert($("input:checked").idList()); 

});

Пример выполнения: JsFiddle Link

  • 0
    $("input[type='checkbox']").val(); вернет только значение первого флажка.
  • 0
    @Rubyist, какой JQuery я должен использовать?
Показать ещё 7 комментариев
2

Попробуйте:

<% (1..5).each do |chk| %>
   <%= check_box_tag 'chk[]',"#{chk}", :checked=>false%>
<% end %>

Затем в контроллере params[:chk] предоставит вам массив отмеченных флажков.

Надеюсь, поможет :)

  • 0
    Я хочу метод jquery.
  • 0
    Это вы, должно быть, сказали раньше в своем вопросе. Почему проголосовали?
1

Попробуйте это Это может помочь вам

Синтаксис Ruby:

 <% (1..5).each do |chk| %>
         <%= check_box_tag('chk[]', chk) %>
         <%= chk %>
      <% end %>

Синтаксис Jquery:

$('document').ready(function(){
    $('input["name=chk[]"]').change(function(){
     if($(this).attr("checked")){
    alert($(this).val())}
  })
})

который выдает предупреждение о флажковом флажке при изменении флажка.

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

$('document').ready(function(){
           alert($('input["name=chk[]"]:checked').val())
   })

Ещё вопросы

Сообщество Overcoder
Наверх
Меню