rails中的Javascript和单选按钮-状态仅检查一次

rails中的Javascript和单选按钮-状态仅检查一次,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我试着为我的图像设置单选按钮。当用户单击一个图像时,其他单选按钮应选中设置为false。现在我有这样的事情: $('.image_choose').each( function() { $(this).click(function() { $('.image_choose').each( function() { $(this).attr("style","border:1px solid #e5e5e5");

我试着为我的图像设置单选按钮。当用户单击一个图像时,其他单选按钮应选中设置为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); 
            });
     });
<label for="image_url_your_img_val1">
    <img src="yourimage1.png"/>
</label>
<input type="radio" name="image_url" id="image_url_your_img_val1" value="your_img_val1"/>

<label for="image_url_your_img_val2">
    <img src="yourimage2.png"/>
</label>
<input type="radio" name="image_url" id="image_url_your_img_val2" value="your_img_val2" />
轨道:

<% @array_new.each do |a|%>
    <div class='image_containter'>
        <li class='image_choose'>       
        <%= f.radio_button :image_url ,a %>

                    </li>
            </div>
    <% end %>

当我这样做的时候,它开始正常工作。Only.prop不会将输入设置为checked='checked',并且Only.attr不会在第二次单击时更改单选按钮值。。。我不明白这里出了什么问题。

你不需要用Javascript来处理单选按钮

为了简化操作,请为列表中的每个单选按钮使用实际的HTML
标记。单击该标签中的任何位置时,将触发radiobutton。只需确保通过其ID将标签正确链接到radiobutton即可

此外,请确保您的单选按钮ID始终是唯一的。所有单选按钮的
name
属性必须相同,以便浏览器知道它们是一个单选按钮组

使用此ERB(如果不是100%正确,则自适应):


结果应该如下所示:

$('.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); 
            });
     });
<label for="image_url_your_img_val1">
    <img src="yourimage1.png"/>
</label>
<input type="radio" name="image_url" id="image_url_your_img_val1" value="your_img_val1"/>

<label for="image_url_your_img_val2">
    <img src="yourimage2.png"/>
</label>
<input type="radio" name="image_url" id="image_url_your_img_val2" value="your_img_val2" />


您可以添加html源代码吗?或者您可以在JSFIDLE上创建一个示例吗?在html中,我单击的每个输入都会被删除,并且对于其他输入,选中的状态都会被删除。但单选按钮仍然没有被选中,它的图表也没有被选中,我的脚本也没有看到它被选中。有人能帮我吗?这个脚本有什么问题?只需先单击每个图像,然后选择“更改”单选按钮。在firebug中,我看到了checkec='checked',但事件中,单选按钮没有被选中。为什么提供更多html源代码如此困难?一个单独的问题需要一个单独的解决方案。你不会帮助soo这会改变什么?我为rails添加了标签,很可能这是rails中的问题,但您删除了它。