我需要向我的用户询问是否使用信用卡支付服务…如果选中了pay_with_card选项?它必须显示表格的其余部分,要求其他数据,如卡号,邮件等,如果用户没有检查它,它必须显示一条消息,问题是……我怎么能这样做?提前致谢
<%= form_for(@product) do |f| %> <%= f.label :pay_with_card? %> <%= f.check_Box :pay_with_card,{},"Yes","No"%> <div> <%= f.label :card_number %> <%= f.text_field :card_number %> </div> <div> <%= f.label :mail %> <%= f.text_field :mail %> </div> <% end %>
解决方法
制作卡号/邮件详细信息div style =“display:none;”,然后在复选框中添加一些javascript以将其更改为显示:block;
像这样的东西:
<%= form_for(@product) do |f| %> <%= f.label :pay_with_card? %> <%= f.check_Box :pay_with_card,"No"%> <div id="card_details" style="display:none;"> <%= f.label :card_number %> <%= f.text_field :card_number %> <%= f.label :mail %> <%= f.text_field :mail %> </div> <% end %> <script type="text/javascript"> var checkBox = document.getElementById('product_pay_with_card'); var details_div = document.getElementById('card_details'); checkBox.onchange = function() { if(this.checked) { details_div.style['display'] = 'block'; } else { details_div.style['display'] = 'none'; } }; </script>