【发布时间】:2020-04-28 02:29:15
【问题描述】:
我有一个表单,其中有几个单选按钮。在显示中,我在这个问题here的帮助下用图像替换了单选按钮
我的代码现在如下:
<div class="form-group col-md-5">
<%= order_item_fields.label :frame_id do %>
<%= order_item_fields.radio_button :frame_id, "1", :checked => true%>
<%= image_tag("http://placehold.it/40x60/0bf/fff&text=A", size: "80") %>
<% end %>
<%= order_item_fields.label :frame_id do %>
<%= order_item_fields.radio_button :frame_id, "2"%>
<%= image_tag("http://placehold.it/40x60/0bf/fff&text=B", size: "80") %>
<% end %>
</div>
而css是:
/* HIDE RADIO */
[type=radio] {
position: absolute;
opacity: 0;
width: 0;
height: 0;
}
/* IMAGE STYLES */
[type=radio] + img {
cursor: pointer;
}
/* CHECKED STYLES */
[type=radio]:checked + img {
background-image: linear-gradient(0deg,rgba(255,0,149,.25),rgba(255,0,149,0));
}
这在那个 a 中运行良好。我得到的是图像而不是按钮,b.悬停在图像上我得到一个光标和 c。主要检查图像 A。
我的问题是单击图像 B 没有任何改变。如果我尝试通过检查来更改 B 的输入以使其被检查,它就可以工作。通过点击虽然它不起作用。
编辑: 检查,我发现一个问题是输入的尺寸很小,而图像的尺寸很大。通过单击我的 标签的左上角,这是我检查它的输入。但它是一个非常小的区域。单击其他任何地方都不会检查该按钮。
我在这里做错了什么?
【问题讨论】:
-
我认为你应该用一些javascript来帮助点击图像B。换句话说:单击图像B时将图像B的单选按钮的状态设置为
true。原因是当您单击图像B时(在这种情况下不是单击单选按钮),单选按钮状态不'不知道并将继续保持false -
@k.vincent 感谢您的评论。我明白你的意思。我在上面添加的链接在没有 JS 的情况下也可以工作,下面发布的答案也可以做到这一点。这也是我想要实现的目标
标签: html css ruby-on-rails sass