2013-07-25 111 views
0

为什么我得到了一个未定义http://jsfiddle.net/Arandolph0/8eukN/3/功能未定义的JS

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<form id="frmcheckbxs" >  
    <c:set var="recordCount" value="2"/> 
    <input type="checkbox" id="chkRefId${recordCount}" onclick="checkRushed ('frmcheckbxs','chkRefId','2')" /> 
    <input type="checkbox" id="chkRefId1" /> 
</form> 

我检查,并没有看起来是类似的东西似乎是功能一个错字的功能。

+0

您的jsFiddle设置为执行'onLoad',这意味着您的JavaScript代码将被放在'window.onload = function(){/ *代码这里* /};'中。这看起来是全球性的吗? – Ian

+0

重复的[简单的例子不工作JSFiddle](http://stackoverflow.com/questions/5431351/simple-example-doesnt-work-on-jsfiddle) – Bergi

回答

2

您已将JSFiddle设置为将所有JavaScript包装在onload事件处理函数中。

checkRushed是在该函数内部定义的,所以它的作用范围是该函数并且不可用作为全局函数。

将您的事件处理程序与addEventListener(或您选择的帮助器函数(如果您使用抽象的帮助器函数)绑定)而不是使用内部事件属性。

+0

所以我试过这个,但它只是禁用它不重新启用http://jsfiddle.net/Arandolph0/jxjW9/11/ –

+1

事件对象没有值,HTMLInputElement会这样做,因此您希望使用'this'而不是'e'。虽然输入的值不会“关闭”,但您尚未设置任何值。你想检查'checked'属性,这将是一个布尔值。 – Quentin

+0

@AprilRandolph:'.disabled'属性必须设置为布尔型!你的琴弦都是真的。你可能想要像http://jsfiddle.net/jxjW9/12/ – Bergi