RubyonRails——嵌套单选按钮问题(当一个被选中时,另一个被取消选中)



所以我有一个表格,每个问题都有不同的选项,每个问题中需要选择一个选项:

<% @exam.exam_questions.each do |question|%>
<div class="item">
<div class="individual_question_container">
<div class="header">
<h3>Question: <%= question.question_no %> / <%= @exam.exam_questions.count %></h3>
</div>  
<div class="container_body">
<br />
<h4><%= question.question%></h4>
<br />
</div>
<div class="footer">
<br />
<% if question.question_type == 1%>
<% if question.correct_answers.split(',').count == 1 %>
<% question.options.split(',').each do |option| %>
<%= radio_button_tag :exam_answer_answer_mcq, option_position_to_answer(question.options.split(',').find_index(option)), false, :name => "exam_answers[][answer_mcq]"%> <!-- RADIO BUTTON TAG HERE -->
<label><%= option %></label>
<br />
<% end %>
<% else %>
<% question.options.split(',').each do |option| %>
<input type="checkbox" name ="<%=question.id%>--<%=question.options.split(',').find_index(option)%>--name" value="<%=option_position_to_answer(question.options.split(',').find_index(option))%>" id="<%=question.id%>--<%=question.options.split(',').find_index(option)%>--id" onclick="add_to_textbox('<%=question.id%>--<%=question.options.split(',').find_index(option)%>--id','<%=question.id%>--mainTextBox')">
<label><%= option %></label>
<br />
<% end %>
<%= hidden_field_tag :exam_answer_answer_mcq, '', :name => "exam_answers[][answer_mcq]", id:"#{question.id}--mainTextBox"%>
<% end %>
<% elsif question.question_type == 2 %>
<%= text_area_tag :exam_answer_answer_seq, '', :name => "exam_answers[][answer_seq]", :class => "form-control", :rows => 15, :placeholder => "Answer...."%>
<% end %>
<br />
</div>
</div>
</div>
<br />
<br />
<%= hidden_field_tag :exam_answer_exam_question_id, question.id, :name => "exam_answers[][exam_question_id]"%>
<%= hidden_field_tag :exam_answer_student_id, current_student.id, :name => "exam_answers[][student_id]"%>
<%= hidden_field_tag :exam_answer_exam_id, question.exam_id, :name => "exam_answers[][exam_id]"%>
<% end %>

假设我从一个问题(单选按钮(中选择了一个选项,当我转到下一个问题并选择另一个选项时,我从上一个问题中选择的选项将变为未选中。有人能告诉他们怎么解决吗?

您的问题是对每组单选按钮(exam_answers[][answer_mcq](使用相同的名称。

如果您更新代码以使用each_with_index或问题的ID(或您真正喜欢的任何内容(,并将其添加到radio_button_tag名称中,这将适用于您。

例如:

<% @exam.exam_questions.each_with_index do |question, i|%>
...
<%= radio_button_tag :exam_answer_answer_mcq, option_position_to_answer(question.options.split(',').find_index(option)), false, :name => "exam_answers[][answer_mcq_#{i}]"%>
...
<% end %>

或者:

<%= radio_button_tag "exam_answer_answer_mcq_#{i}", option_position_to_answer(question.options.split(',').find_index(option)), false, :name => "exam_answers[][answer_mcq_#{question.id}]"%>

使用相同的名称将所有选项组合在一起,这意味着每个组只能选择一个选项。更新为使用上述方法将通过区分组来克服这一问题。

希望这能有所帮助——让我知道你过得怎么样,或者如果你有任何问题。

最新更新