JavaScript onchange不会在单选按钮上触发

JavaScript onchange不会在单选按钮上触发,javascript,jquery,html,Javascript,Jquery,Html,在我切换单选按钮后,to onchange功能无法正确触发。目前,我没有收到圆圈取消选中或箭头取消选中的日志消息。HTML如下所示: var drawingArrow=document.getElementById'drawing-arrow-shape', drawingCircle=document.getElementById'drawing-circle-shape'; drawingCircle.onchange=函数{ console.logon更改循环btn; 如果$drawin

在我切换单选按钮后,to onchange功能无法正确触发。目前,我没有收到圆圈取消选中或箭头取消选中的日志消息。HTML如下所示:

var drawingArrow=document.getElementById'drawing-arrow-shape', drawingCircle=document.getElementById'drawing-circle-shape'; drawingCircle.onchange=函数{ console.logon更改循环btn; 如果$drawing圆形。是否:选中{ console.logcircle已检查; }否则{ console.logcircle取消选中; } }; drawingArrow.onchange=函数{ console.logon更改箭头btn; 如果$drawing arrow shape.is:已选中{ console.logarrow已选中 }否则{ console.logarrow取消选中; } };
我在你的Js中做了一个小改动,现在它可以工作了,请检查下面我所做的改动

var drawingArrow = document.getElementById('drawing-arrow-shape');
var drawingCircle = document.getElementById('drawing-circle-shape');
只是删除了逗号并创建了单独的变量

var drawingArrow=document.getElementById'drawing-arrow-shape'; var drawingCircle=document.getElementById'drawing-circle-shape'; drawingCircle.onchange=函数{ console.logon更改循环btn; 如果$drawing圆形。是否:选中{ console.logcircle已检查; }否则{ console.logcircle取消选中; } }; drawingArrow.onchange=函数{ console.logon更改箭头btn; 如果$drawing arrow shape.is:已选中{ console.logarrow已选中 }否则{ console.logarrow取消选中; } };
您需要更改以下两条语句:

   var drawingArrow = document.getElementById('drawing-arrow-shape');
        drawingCircle = document.getElementById('drawing-circle-shape');
在这两个问题的末尾都有一个“,”引起了问题。将其替换为“;”修复了它。

问题在于,在第二个变量定义之后,应该是a;。这让JS解释器感到困惑,因为它认为下一条语句将是一个变量定义,而实际上它是一个变量设置器

但是,您应该注意,您可以通过直接在元素上使用addEventListener来改进逻辑。然后,您可以只使用this关键字来引用元素,而不必使用jQuery来选择已经有引用的元素。试试这个:

document.getElementById'drawing-arrow-shape'。addEventListener'change',函数{ 如果这个被选中了 控制台。日志“箭头已选中”; }; document.getElementById'drawing-circle-shape'。addEventListener'change',函数{ 如果这个被选中了 控制台。日志“圆圈检查”; };
你昨天问的。我们对此提供了答案。您没有收到任何消息,因为您必须在不同的范围内分离单选按钮。你想让他们这样做还是这样做?更新后,代码现在可以工作了,正如我添加到问题中的代码片段所示。你到底在问什么?有什么变化?我应该把放大镜拿出来吗@RoryMCrossan如果您有一个,请使用:否则我只做了var drawingArrow=document.getElementById'drawing-arrow-shape';var drawingCircle=document.getElementById'drawing-circle-shape';加入JS@Yogeh请在问题部分添加您的评论;copyYes@Olipol失败了,这是一个错误哦,对不起,我有一个错误;失败了copy@Olipol是的,这会解决问题。你的代码正在运行,请尝试一下;复制失败我不确定你的意思?你的更新修复了这个问题。。。使问题变得毫无意义。现在,我的问题是对逻辑的改进。但是为什么它不从else分支返回console.log呢?这是因为更改事件只在您单击的元素上触发,而不是之前检查的元素。