这是我的html和js:
function calculateFun()
{
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var c = document.getElementById('c').value;
var d = document.getElementById('d').value;
var e = document.getElementById('e').value;
var f = a*b;
document.getElementById('f').value = f;
var g = (f + (f*(d/100))).toFixed();
document.getElementById('g').value = g;
var h = ((1 -((a*c)/e))*100).toFixed();
document.getElementById('h').value = h;
}

<input type="number" id="a" onkeyup="calculateFun();" />
<input type="number" id="b" onkeyup="calculateFun();" />
<input type="number" id="c" value="100" />
<input type="number" id="d" value="50" />
<input type="number" id="e" onkeyup="calculateFun();" />
<br><br><p>******</p><br><br>
<input type="number" id="f" />
<input type="number" id="g" />
<input type="number" id="h" />
&#13;
我在JSFIDDLE中尝试了这段代码: https://jsfiddle.net/1ex3b1sa/
但它不起作用。同样在我的网站中,该功能未被调用。 这很奇怪,因为我可以用同样的方式调用我所做的其他功能。
我尝试更改为onclick,onkeypress或onkeydown,但无法看到任何结果..
任何想法?也许我有拼写错误?或者它的铬问题?
答案 0 :(得分:4)
在JSFiddle中,您需要将JavaScript包装设置为 “No wrap-in <head>
” ,否则您将获得“未捕获的ReferenceError: calculateFun未定义为“错误。
确保该功能在此处:
<html>
<head>
<script type="text/javascript">
function calculateFun() {
// ...
您实际上可以将函数定义保留在onLoad
换行中并更改:
function calculateFun() {
对此:
window.calculateFun = function() {
它会起作用,因为您将作为静态方法的函数添加到浏览器的Window
。
答案 1 :(得分:1)
在jsfiddle.net的左侧是一个包含&#34; Frameworks&amp;扩展&#34;
在第二个选择框中,您必须选择:
没有换行&lt; body&gt;
或
没有换行&lt; head&gt;
然后它会起作用。如果你不这样做,该函数将不会被定义,它将只运行一次(在OnLoad事件中)。
答案 2 :(得分:-2)
请学习jquery,它不是那么难,会帮助你!
你的功能jquery的小提琴:https://jsfiddle.net/1ex3b1sa/3/
输入字段得到了class ='calc' 和js:
$('.calc').keyup(function(){
var a = $('#a').val();
var b = $('#b').val();
var c = $('#c').val();
var d = $('#d').val();
var e = $('#e').val();
var f = a * b;
$('#f').val(f);
var g = (f + (f*(d/100))).toFixed();
$('#g').val(g);
var h = ((1 -((a*c)/e))*100).toFixed();
$('#h').val(h);
});