1

我正在使用下面的 javascript 函数来获取页面上的所有单选按钮并清除它们。问题是我不想清除所有这些。有没有办法只清除一组?我认为我可以对它们进行逻辑分组的唯一方法(因为它们是由服务器端映射动态生成的)是给所有我想要的未选中的通用样式类名称并以这种方式搜索。关于如何修改以下内容以使其仅找到具有特定样式类名称的某些单选按钮的任何想法?align-top 是我的 styleClass 名称。

<script type="text/javascript">
       function clearOtherSelections(selRow){
           var radios = jQuery('td > input[type=radio]');
           radios.attr('checked', false);
           selRow.checked = 'checked';                   
       }
</script>

当我使用下面的修改后的代码时,var radios = jQuery('.align-top');警告所有收音机都未选中,这是不真实的。当我使用我的旧方式var radios = jQuery('td > input[type=radio]');时,它显示一个收音机检查了其他收音机,这是正确的。为什么不jQuery('.align-top');显示无线电检查的准确状态?

修改后的代码:

function clearOtherSelections(selRow){
                        //var radios = jQuery('td > input[type=radio]');
                        var radios = jQuery('.align-top');                        
                        for( i = 0; i < radios.length; i++ ) {
                            if( radios[i].checked ) {
                                alert('checked')
                                radios.attr('checked', false);
                            }else{
                                alert('unchecked')
                            }
                        }

                        selRow.checked = 'checked';                    
                    }
4

3 回答 3

4

我建议:

function clearOtherSelections(selRow){
    var radios = jQuery('td > input.specificClassName:radio');
    radios.prop('checked', false);
    selRow.checked = 'checked';                   
}

您正在设置checked property,而不是attribute,所以使用prop()方法,而不是attr().

如果该类仅应用于input您要设置样式的特定元素,则可以使用,只需:

var radios = jQuery('.specificClassName');

或者:

var radios = jQuery('input.specificClassName');

参考:

于 2013-04-11T22:03:26.733 回答
1

尝试这个:

<script type="text/javascript">
       function clearOtherSelections(selRow){
           var radios = jQuery('td > input[type=radio].someclass');
           radios.prop('checked', false);
           selRow.checked = 'checked';                   
       }
</script>
于 2013-04-11T22:03:19.647 回答
0

You can use :radio selector, which comes along with jQuery library, and it is more faster as compare to input[type=radio].

$("td > input:radio.yourClass") // Gives you all the radio button which has yourClass

jQuery : radio selector

于 2013-04-12T14:03:17.440 回答