【问题标题】:JavaScript in Google ChromeJavaScript 在 Google Chrome 中不起作用
【发布时间】:2025-12-11 11:10:01
【问题描述】:

为什么某些 JavaScript 函数在 Google Chrome 中无法运行,但在 Mozilla Firefox 中运行良好?

像这样..

HTML 代码:
...

onkeyup="calculateTotal(this.value)" 
onclick="clickclear(this, '0')" onblur="clickrecall(this,'0')" value="0"

JS代码:

function calculateTotal(price, quantity, cnt) {  
    if(quantity != ""){  
        var totalAmt = parseInt(document.getElementById('total['+cnt+']').value);  
        totalAmt = parseInt(quantity) * parseInt(price);

        document.getElementById('total['+cnt+']').value = totalAmt;
        document.getElementById('indicator').value++;
    }
    else{
        document.getElementById('total['+cnt+']').value = 0;
        document.getElementById('indicator').value--;

    }
}

并且已经包含了这个:
jquery1.4.2.js

【问题讨论】:

  • 能否请您提供一个jsfiddle.net 演示案例?
  • chrome 确实有一个 javascript 控制台 (ctrl+shift+j)。它说什么?
  • 如果你使用jquery(有$函数),为什么要拼写document.getElementById?
  • 天啊@Ghommey,以前从未见过 jsfiddle。这太不可思议了
  • +1 @George Mauer 复制了我对找到 jsfiddle 的反应。

标签: php javascript javascript-events google-chrome


【解决方案1】:

你正在调用函数

calculateTotal(this.value)

但你的功能是:

function calculateTotal(price, quantity, cnt)

我不知道为什么这在 Firefox 中有效(我假设它们自动提供参数或其他东西),但你的两个函数不匹配。

【讨论】:

  • 不,实际上是 onkeyup="calculateTotal(, this.value, )"
  • 我只是简化了它,我忘了简化功能。实际上,这只是为了发布目的,这就是为什么我删除了一些参数只是为了向你们展示流程。它在 Firefox 中运行良好。
【解决方案2】:

来自 html 4 规范:

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 (" _")、冒号 (":") 和句点 (".")。

http://www.w3.org/TR/html401/types.html#type-name

因此,在尝试其他任何操作之前,我会替换您在 ids 中使用方括号。

【讨论】: