我正在制作一个表单,其中一个问题类型是肯定/否定问题。如果用户选择" no",则需要填写一个文本框,说明他们选择否的原因。如果用户选择“否”,我想使文本框成为必需,但如果用户选择“是”,则不需要。这就是我的代码看起来像
<% @questions.each_with_index do |question, index| %>
...
<div class="radio-button">
<%= radio_button_tag("questions[#{question.id}][answer][name]", "yes", false, required: true) %>
<%= label_tag("questions[#{question.id}][answer][name]_yes", "Yes") %>
</div>
<div class="radio-button">
<%= radio_button_tag("questions[#{question.id}][answer][name]", "no", false, required: true) %>
<%= label_tag("questions[#{question.id}][answer][name]_no", "No") %>
</div>
<div class="explanation">
<%= label_tag("questions[#{question.id}][answer][explanation]", "If no, please explain why.") %>
<div>
<%= text_area_tag("questions[#{question.id}][answer][explanation]", nil, size: "50x8", title: "question-#{index + 1}-text") %>
</div>
</div>
<% end %>
如果用户选择了no单选按钮,如何在用户选择yes时不需要最后一个text_area_tag?我想我将不得不添加一些
的内容<%= text_area_tag(..., required: ([condition] ? true : false) %>
但我不确定如何写这个条件。是否可以定位单选按钮并查看是否已选中?谢谢!
答案 0 :(得分:0)
这完全取决于条件是什么
我认为条件是参数的一部分
<% if params['something'] == 'true' %>
<%= text_area_tag(...) %>
<% else %>
<%= text_area_tag(..., required: params['something']) %>
<% else %>
我希望这有助于
答案 1 :(得分:0)
尝试
<%= text_area_tag(..., ([condition] ? {required: true} : {})) %>