2014-11-17 2 views
2

У меня есть кнопка, и когда я нажимаю на нее, я хочу, чтобы все флажки были выбраны. Если щелкнуть второй раз, все флажки должны быть отменены.Ruby on Rails, выберите и снимите все флажки

<script type='text/javascript'> 
    $('#check_all').on("click", function(){ $('input[type="checkbox"]').click(); }); 
    </script> 



<%= form_tag save_share_patients_clinicdb_grp_pats_path, method: :post do %> 

<%= hidden_field_tag 'to_share_group', @to_shr_group%> 
<button type="button" id="check_all" class="btw"><%="Check all/Uncheck all"%></button> 

    <%@pat_ids.each do |pat_id| 
    %> 
     <%= check_box_tag "to_share_patients[]", pat_id.mk1%> <%=pat_id.mk1%> 
     <br/> 
    <%end%> 

<%= button_tag :class => "btn btn-warning", :name => 'share' do %> <%= t "share" %> <% end %> 
<%end%> 

Что-то здесь не работает. Не могли бы вы мне помочь?

редактировать:

$('#check_all').on("click", function(){ alert("aaa"); }); 

не предупредит ничего

в application.js:

//= require jquery 
//= require jquery_ujs 
//= require jquery.Jcrop 
//= require jquery.purr 
//= require jquery-fileupload 
//= require best_in_place 
//= require rails.validations 
//= require_self 
//= require_tree ./bootstrap 
//= require_tree ./jquery 
//= require_tree ./menu 
//= require_tree ./notifications 
//= require_tree ./search 
//= require_tree ./sort 
//= require dataTables/jquery.dataTables 

в application.html

<%= javascript_include_tag 'jquery.min', 'jquery-ui-1.10.4.custom.min.js' %> 
<%= stylesheet_link_tag "/assets/ui-lightness/jquery-ui-1.10.4.custom" %> 
<%= javascript_include_tag 'application' %> 
+0

является библиотека JQuery включено на вашей странице? – jljohnstone

+0

@jljohnstone нет, как я могу включить его? – Tonja

+0

Используйте jquery-rails gem: https://github.com/rails/jquery-rails, но он должен был быть включен в проект Rails по умолчанию. Возможно, вы удалили его из файла 'app/assets/javascripts/application.js' – jljohnstone

ответ

2

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

$('#check_all').on("click", function(){ 
    var cbxs = $('input[type="checkbox"]'); 
    cbxs.prop("checked", !cbxs.prop("checked")); 
}); 
+0

Пришлось добавить $ (function() {}) – Tonja

5

U пытался вызвать «щелчок» событие на «check_all» элемент, прежде чем она будет загружена. Следовательно, функция предупреждения не работает.

$(document).ready(function(){ 
    $('#check_all').on("click", function(){ alert("hi") }); 
}); 

Для выбора флажков

$(document).ready(function(){ 
    $('#check_all').on("click", function() { 
    // grouping all the checkbox using the classname 
    var checkboxes = $("class name for the checkbox"); 
    // check whether checkboxes are selected. 
    if(checkboxes.prop("checked")){ 
     // if they are selected, unchecking all the checkbox 
     checkboxes.prop("checked",false); 
    } else { 
     // if they are not selected, checking all the checkbox 
     checkboxes.prop("checked",true); 
    } 
    }); 
}); 
Смежные вопросы