Javascript 引用错误 - 找不到整个函数
Javascript Reference Error - Can not find entire function
我正在尝试编写一个简单的javascript函数,根据php打印的数据计算总数,它给了我一个Javascript参考错误,我已经用谷歌搜索过,但是这个错误太简单了,很常见,我找不到任何特定于我的问题的信息。
我已经清楚地做了功能,我无法理解我做错了什么。我知道这可能只是一个格式错误,但我看不到它。
JSFiddle在这里(它有php打印的静态示例):JSFiddle 示例
还有我的JavaScript:
function calculcateTotal(obj){
var id = obj;
var ticketCost = document.getElementById(obj).value;
var i = 1;
boolean firstTicket = true;
if(document.getElementById('term1').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term2').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term3').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term4').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}
var runningTotal = parseFloat(ticketCost)*parseFloat(i);
document.getElementById('total').value = runningTotal;
}
function changeTotal(){
var ticketCost = document.getElementById('total').value;
var i = 1;
boolean firstTicket = true;
if(document.getElementById('term1').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term2').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term3').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}else if(document.getElementById('term4').selected == true){
if(firstTicket == false){
i = i + 1;
}else if(firstTicket == true){
firstTicket = false;
}
}
var runningTotal = parseFloat(ticketCost)*parseFloat(i);
document.getElementById('total').value = runningTotal;
}
任何人都可以看到我的问题是什么吗?
哒!
像
这样的两行:
boolean firstTicket = true;
boolean
不是 Javascript 中的 vlay 关键字 - 请改用 var
。
如果您的 Javascript 中存在语法错误,则整个函数将被丢弃,因此会出现引用错误。
你的脚本中有多个错误,我花了一段时间,但我找到了你的脚本。 除了明显的语法错误之外,导致问题的一行代码是必不可少的。
更新了你的小提琴
// This is the line
// ticketCost = document.getElementById(obj).value;
// change to this
ticketCost = document.getElementById(obj.value).value;
变量 obj 是一个 html 元素,因此这将抛出错误,将其直接放入方法中,您要做的是获取它的 id,即所选项的值。
语法:
// Syntax Error
// boolean firstTicket = true;
// correction
var i = 1,
firstTicket = true;
// Syntax
// its checked not selected
// document.getElementById('term2').selected
document.getElementById('term2').checked
// Possible rewrite
if (!firstTicket) i++;
else firstTicket = false;
// from
// no need for the extra if statement
// bc false and true are opposites
if (firstTicket == false) {
i = i + 1;
} else if (firstTicket == true) {
firstTicket = false;
}
// Catch errors with first option being selected
if (obj.value === '') return false;
// reference error is due to the script not being in the head
// either put the script in the head or before the first call from the html elements
// use no wrap - in <head> for jsfiddle console
但您可以使用 console.log
通过 JavaScript 控制台发现错误和变量值,以帮助您进行调试
编辑:
你的代码太过分了,我为你最小化了它,所以它实际上会起作用。吉斯菲德尔
var i = 0, // ticket count
ticketCost = 0, // ticket cost
total = document.getElementById('total'); // total
function calculcateTotal (obj) {
// change the ticket cost here
ticketCost = obj.value === '' ? 0 : document.getElementById(obj.value).value;
total.value = parseFloat(ticketCost) * i;
}
function changeTotal (obj) {
// change the ticket size here
i = obj.checked ? (i + 1) : (i - 1);
total.value = ticketCost * i;
}
.HTML
// change html to the following
// onchange="changeTotal(this)"
<input type="checkbox" name="term1" id="term1" value="Summer" style="width:auto;margin-right:5px;" onchange="changeTotal(this)">
相关文章:
- 在wordpress中找不到jQuery函数
- 在页面中找不到元素的正确位置.函数未考虑填充
- JavaScript函数在Safari中有效,但在Firefox中找不到
- 为什么当我使用初始化触发器函数时,我总是找不到脚本函数:发送发票如果新
- 找不到柴函数
- 找不到 jquery 输入自动完成函数
- 谷歌应用程序脚本-正在尝试使用getUrl.TypeError:在对象工作表中找不到函数getUrl
- 继续得到一个错误,即某个东西不是函数,但找不到原因
- Javascript 引用错误 - 在对象内找不到函数
- 谷歌脚本在对象中找不到函数LastIndexOf
- 找不到Google Apps脚本库嵌套函数
- 函数找不到变量
- jQuery函数找不到容器 - 可能是克隆错误
- $(document).ready() 中的函数找不到 DOM 的主体元素
- Ajax函数找不到正确的数据
- ReactJS映射函数找不到未定义的属性
- jQuery's getScript函数找不到我的.js.Rails中的动词模板
- jQuery的点击函数找不到选择器
- Angular 2-从JS文件(chart.JS)调用函数-找不到函数
- JS构造函数找不到全局变量