Javascript 允许两个复选框/RoR应用程序

Javascript 允许两个复选框/RoR应用程序,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,您好,我正在开发一个带有RoR的表单生成器,当我有一个“多项选择”问题时,我希望只允许2个复选框。我为这个例子编写了一个JavaScript: 我的观点举例 我的Javascript: 我如何调整以使其与我的Ruby代码一起工作: <%= form_for([@formulaire, @formulaire.polls.new]) do |f| %> <% @formulaire.questions.each_with_index do |questio

您好,我正在开发一个带有RoR的表单生成器,当我有一个“多项选择”问题时,我希望只允许2个复选框。我为这个例子编写了一个JavaScript:

我的观点举例 我的Javascript: 我如何调整以使其与我的Ruby代码一起工作:

<%= form_for([@formulaire, @formulaire.polls.new]) do |f| %>
            <% @formulaire.questions.each_with_index do |question, i| %>
            <li>
                <div>

                <form id="form"> 
                <%= question.nom.html_safe %>
                <ul>
                   <% if question.typequestion == "choix_multiple"%>
                        <% question.answers.each_with_index do |answer, j| %>
                                <div>
                                <%  a= Answer.find_by_sql(["Select * from answers where id=?", answer.id]).as_json(only: [:question_id,:content]) %>
                                <%= check_box_tag :"nom_#{i}_#{j}", answer.id %> 
                                <%= f.label :"nom_#{answer.content}", answer.content%> <% answer.id%>
                                <br/>
                                </div>
                        <% end %>
                    <% elsif question.typequestion == "choix_simple"%>
                        (...)

        <%= f.submit "Valider les réponses", class:"pull-right btn btn-primary" %>
<% end %>

jQuery未与表单链接。简单的解决方案是为每个表单添加一个类,并在选择器中使用该类

$document.readyfunction{ $'.form input[type=checkbox]'。在'change'上,函数E{ var MyForm=this.parentNode.id; 如果$'form[id='+MyForm+']输入[type=checkbox]:选中。长度==2{ $'form[id='+MyForm+']输入[type=checkbox]:未选中。prop'disabled'、'disabled'; }否则{ $'form[id='+MyForm+']输入[type=checkbox]:未选中。prop'disabled',false; } }; }; 表格一 表格二
<script>

$(function() {
  $('form input[type=checkbox]').on('change', function(e) {
  var MyForm=this.parentNode.id;
  if ($('form[id='+MyForm+'] input[type=checkbox]:checked').length == 2) {
  $('form[id='+MyForm+'] input[type=checkbox]:not(:checked)').prop('disabled', 'disabled');
}else{
  $('form[id='+MyForm+'] input[type=checkbox]:not(:checked)').prop('disabled', false);
  }
 });

});
<%= form_for([@formulaire, @formulaire.polls.new]) do |f| %>
            <% @formulaire.questions.each_with_index do |question, i| %>
            <li>
                <div>

                <form id="form"> 
                <%= question.nom.html_safe %>
                <ul>
                   <% if question.typequestion == "choix_multiple"%>
                        <% question.answers.each_with_index do |answer, j| %>
                                <div>
                                <%  a= Answer.find_by_sql(["Select * from answers where id=?", answer.id]).as_json(only: [:question_id,:content]) %>
                                <%= check_box_tag :"nom_#{i}_#{j}", answer.id %> 
                                <%= f.label :"nom_#{answer.content}", answer.content%> <% answer.id%>
                                <br/>
                                </div>
                        <% end %>
                    <% elsif question.typequestion == "choix_simple"%>
                        (...)

        <%= f.submit "Valider les réponses", class:"pull-right btn btn-primary" %>
<% end %>