【问题标题】:mark unchecked radio inputs标记未选中的无线电输入
【发布时间】:2015-05-18 23:26:13
【问题描述】:

嘿,问题来了。 我有 3x3 表,每个单元格中都有放射性输入。 每行都有自己的名称,因此可以连续检查一个收音机。 如果选择了这 3 个收音机,我已经制作了 jquery 来检查。如果是,我们转到下一页,如果不是,我必须选择没有标记收音机的行。 我已经完成了“是”检查,但不知道“否”声明。 代码如下:

                            <div id="check-services" class="button">
                            <table>
                                <tr class="select-checkboxes">
                                    <td>Fahrschule Müssig Dresdner Straße 1 80993 München</td>
                                    <td class="radio-tab"><input name="radio-office-01" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-01" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-01" type="radio"/></td>
                                </tr>
                                <tr class="select-checkboxes">
                                    <td>Fahrschule Müssig Straßbergerstraße 34 80809 München</td>
                                    <td class="radio-tab"><input name="radio-office-02" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-02" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-02" type="radio"/></td>
                                </tr>
                                <tr class="select-checkboxes">
                                    <td>Fahrschule Müssig Goethestraße 66 80663 München</td>
                                    <td class="radio-tab"><input name="radio-office-03" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-03" type="radio"/></td>
                                    <td class="radio-tab"><input name="radio-office-03" type="radio"/></td>
                                </tr>
                            </table>
                        </div>

    $('#check-services .button').click(function(){
    var officeOne = $('input[name="radio-office-01"]');
    var officeTwo = $('input[name="radio-office-02"]');
    var officeThree = $('input[name="radio-office-03"]');

    if($(officeOne && officeTwo && officeThree).is(':checked')){
        $(this).parents('#check-services').hide();
        $('#check-payment').show()
    }
    else{
        blablabla
    }
});

【问题讨论】:

  • 你没有做“是”检查
  • 另外,输入不应具有相同的name 属性
  • 您能否提供一个JSFiddle 链接,我可以看到您的代码正在运行?
  • 一定是抄错了,这里jsfiddle.net/7hhpw565

标签: javascript jquery radio-button


【解决方案1】:

我怀疑是否正确理解您的问题,但我想建议 jquery 的 .closest 方法。

如您所见 Here( jsFiddle ) 我们现在有没有检查输入的行。

正如@radonirina-maminiaina 所说,您的错误是您的状况。但也有更好的办法:

if ( officeOne.is( ':checked' ) && officeTwo.is( ':checked' )
      && officeThree.is( ':checked' ) ) {

        alert('yes');

}

在接下来的过程中,我们检查了表格的每一行,并为它们提供了一些特定的样式(您可能想对它们做任何其他事情):

if ( !officeOne.is( ':checked' ) ) {

    officeOne.closest( 'tr' ).css('background-color', 'red' );

}

其他行也是如此。完整的工作代码在您的updated jsFiddle 上。尝试检查其中一些并提交。

希望能提供帮助。

【讨论】:

    【解决方案2】:

    您使用的选择器不正确。

    使用以下选择器:$('#check-services .button')

    而且你检查收音机是否被检查的方式也不正确。

    这是正确的条件:

    if($(officeOne).is(':checked') && $(officeTwo).is(':checked') && $(officeThree).is(':checked') )
    

    这是一个演示结果的演示:http://jsfiddle.net/2xn0gL7z/

    【讨论】:

      猜你喜欢
      • 2016-03-30
      • 2017-10-20
      • 2015-12-20
      • 1970-01-01
      • 2014-04-23
      • 2021-06-02
      • 2015-11-17
      • 2010-12-19
      • 1970-01-01
      相关资源
      最近更新 更多