Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.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 单击自定义复选框不会运行关联的onClick函数_Javascript_Checkbox_Onclick - Fatal编程技术网

Javascript 单击自定义复选框不会运行关联的onClick函数

Javascript 单击自定义复选框不会运行关联的onClick函数,javascript,checkbox,onclick,Javascript,Checkbox,Onclick,我正在尝试使用Ryan Fait的自定义复选框。这些复选框比标准复选框可读性强得多,但单击它们不会运行相关的onClick函数。如有任何建议,将不胜感激。我的代码的相关部分如下: <p style="font-family:arial; font-size:large"> <input type="checkbox" class="styled" id="level-0" type="radio" value="0" onClick="count();"> &n

我正在尝试使用Ryan Fait的自定义复选框。这些复选框比标准复选框可读性强得多,但单击它们不会运行相关的
onClick
函数。如有任何建议,将不胜感激。我的代码的相关部分如下:

<p style="font-family:arial; font-size:large">

<input type="checkbox" class="styled" id="level-0" type="radio" value="0"
onClick="count();"> &nbsp;0 (ages 5-7)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-1" type="radio" value="1"
onClick="count();" checked>&nbsp;1 (beginner)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-2" type="radio" value="2"
onClick="count();" checked>&nbsp;2 (easy)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-3" type="radio" value="3"
onClick="count();" checked>&nbsp;3 (intermediate)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-4" type="radio" value="4"
onClick="count();"> &nbsp;4 (challenging)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-5" type="radio" value="5"
onClick="count();"> &nbsp;5 (hard)&nbsp;&nbsp;

<input type="checkbox" class="styled" id="level-all" type="radio" value="6"
onClick="all_levels();"> &nbsp;All&nbsp;&nbsp;

<input id="available" type="button" style="background-color:white; border:2px;
font-family:arial; font-size:large" value="??"> </p> <br>

0岁(5-7岁) 1(初学者) 2(简单) 3(中级) 4(挑战性) 5(硬) 全部的

来自Ryan Fait的网站:

它是如何工作的?

简而言之,JavaScript查找每个表单元素 class=“styled”在其上;隐藏真实的表单元素;贴一个跨度标签 元素旁边有一个CSS类;最后,还有鼠标事件 添加到处理视觉阶段表单输入的范围 当单击它们时通过

您的内联
onClick
处理程序没有启动,因为您的复选框实际上没有被单击。Ryan明确表示它“隐藏了真正的表单元素;用CSS类粘贴了一个span标记”。。。所以你实际上是在点击Ryan的代码插入的
;真正的复选框是隐藏的

在文章后面,Ryan直截了当地说:

onChange和其他JavaScript事件

此脚本利用JavaScript的onChange和其他事件。因为 如果要添加更多函数,这些事件只能使用一次 对于事件,您需要从我的脚本中调用它们。

你需要在我的脚本中调用它们 将您的
onClick=
标签中取出;将您的代码添加到他的代码中——您必须找出要从他的代码中调用的代码位,因为我看到您正在做与onclick不同的事情


您还应该从标记中取出
style=“…”
,并使用样式表,但这是一个单独的问题。

相关部分还应该包括相关的JavaScript,这将提供一些测试代码的方法。每个输入上的“type”属性应该有两个值吗?不应该有两个值“type”。我粘贴了上面的内容,我的浏览器设置了复选框,大概是因为这是第一个提到的
类型”“谢谢!问题页面的发布版本位于以下URL:测试版,我尝试使用自定义复选框,但我开始对这里发生的事情有所了解,但仍然感到困惑。我目前正在通过onClick调用两个不同的函数。似乎标签中必须有一些属性来标识要调用的函数,所以我不知道如何删除它。输入标签中没有一个属性来标识要调用的函数。指定
onclick=“someJavascript”
将覆盖任何现有的单击处理程序;事实上,通常不鼓励这样内联指定处理程序。最好的方法是在一个完全独立的
.js
文件中附加一个处理程序。jQuery非常适合这样做,因为它将添加一个处理程序以及任何现有的处理程序。使用纯javascript(没有jQuery、Dojo或Prototype),您必须检查是否存在现有的处理程序,并从处理程序中调用它。Google搜索
链接事件处理程序javascript
获取plain.js提示。