我尝试为我的图像添加单选按钮。当用户单击一个图像时,其他单选按钮应已选中设置为 false。现在我有这样的事情:
$('.image_choose').each( function() {
$(this).click(function() {
$('.image_choose').each( function() {
$(this).attr("style","border:1px solid #e5e5e5");
$(this).attr("id","in_active");
$inputs = $(this).find('input[type="radio"]');
$inputs.attr("checked", false);
});
$label = $(this), $input = $(this).find('input[type="radio"]');
$label.find('input').attr("checked", true);
});
});
导轨:
<% @array_new.each do |a|%>
<div class='image_containter'>
<li class='image_choose'>
<%= f.radio_button :image_url ,a %>
</li>
</div>
<% end %>
所以我认为 - 当用户单击 image_choose 元素时,首先为每个 image_choose 我设置 attr 并检查为 false。然后为 $this 元素将其更改为 true。这里有什么问题?只有当第一次点击图片时,radio_button 才会改变图表和状态。
一些解决方案:
我不认为这样做的好方法,但我发现:
$label.find('input').prop("checked", true);
$label.find('input').attr("checked", true);
当我这样做时 - 它开始正常工作。只有.prop 没有设置输入checked='checked',只有.attr 在第二次点击时不会改变单选按钮的值......我不明白这里有什么问题。