Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单选按钮的切换只能工作一次(刷新)?_Javascript_Jquery - Fatal编程技术网

Javascript 单选按钮的切换只能工作一次(刷新)?

Javascript 单选按钮的切换只能工作一次(刷新)?,javascript,jquery,Javascript,Jquery,我正在尝试切换单元格表中包含的收音机框选择 每个单选按钮只能切换一次 之后,所有单选按钮都被禁用,但我的HTML代码似乎是正确的;属性checked=“checked”存在 为什么这不起作用 以下是我正在使用的jQuery: $('td').click(function(){ var $elem = $(this).children('input'); var name = $elem.attr('name'); $('input[name=

我正在尝试切换单元格表中包含的收音机框选择

每个单选按钮只能切换一次

之后,所有单选按钮都被禁用,但我的HTML代码似乎是正确的;属性
checked=“checked”
存在

为什么这不起作用

以下是我正在使用的jQuery:

$('td').click(function(){
    var $elem = $(this).children('input');               
    var name = $elem.attr('name');
    $('input[name='+name+']').each(function(){
       $(this).removeAttr('checked');                  
    }).promise().done(function(){                 
       $elem.attr('checked','checked');               
    });
}); 
图像:

您需要使用,因为当前实际上是使用
removeAttr()
删除属性,而不是将其设置为禁用

以下工作将起作用:

$('input[name='+name+']').each(function(){
   $(this).prop('checked', false);                  
}).promise().done(function(){                 
   $elem.prop('checked', true);               
});
您需要使用,因为当前实际使用的是
removeAttr()
删除属性,而不是将其设置为禁用

以下工作将起作用:

$('input[name='+name+']').each(function(){
   $(this).prop('checked', false);                  
}).promise().done(function(){                 
   $elem.prop('checked', true);               
});

prop
做这个把戏,但我不明白为什么
attr
不重新格式化UI??!!我不认为这是原因。实际上,
$(this.attr('checked',false)也不起作用。我需要使用
prop
。感谢您的快速帮助。@sdespont我认为
attr('checked',false)
不存在,使用attr将checked设置为false的方法是使用
removeAttr
,所以问题是removeAttr,我相信:)
prop
做这个把戏,但我不明白
attr
为什么不重新构造UI??!!我不认为这是原因。实际上,
$(this.attr('checked',false)也不起作用。我需要使用
prop
。感谢您的快速帮助。@sdespont我认为不存在
attr('checked',false)
,使用attr将checked设置为false的方法是使用
removeAttr
,所以问题是removeAttr,我相信:)