Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 带有html属性的不可选中单选按钮';选中';_Javascript_Jquery_Html_Radio Button - Fatal编程技术网

Javascript 带有html属性的不可选中单选按钮';选中';

Javascript 带有html属性的不可选中单选按钮';选中';,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,我使用一个友好的小伙子在javascript中提供的这个简单脚本来取消选中单选按钮: $('.feed').on('click', 'input[type=radio]', function() { var myParent = $(this).closest('div'); var ref = $(this); if( myParent.data('val') == $(this).val() ){ var ref = myParent.find('.none inp

我使用一个友好的小伙子在javascript中提供的这个简单脚本来取消选中单选按钮:

 $('.feed').on('click', 'input[type=radio]', function() {
    var myParent = $(this).closest('div');
  var ref = $(this);
  if( myParent.data('val') == $(this).val() ){
    var ref = myParent.find('.none input');
    ref.prop('checked',true);
  }
    myParent.data('val',ref.val() )
 });

一切都很好,请看这个,但是当我将属性“checked”添加到一个单选按钮时,您实际上必须单击两次才能取消选中它,请看这个。这让我想到,将“checked”设置为属性实际上等于手动检查单选按钮吗?或者我为什么失败了?

这与添加属性与单击无关,这是额外的代码,特别是这一行:

if (myParent.data('val') == $(this).val() ){
也就是说,如果你以前点击过这个,就把它关掉

但是,您并没有告诉代码您已经(实际上)“点击”了它

您可以通过将初始值添加到“myParent”来完成此操作,一种方法是将其添加到html:

<div data-val='1'>
更新小提琴:

var startup = $(".feed input[type=radio]:checked").first();
if (startup.length) {
    startup.closest("div").data("val", startup.val())
}