JavaScript计算器不工作
下面是一本JavaScript书籍的示例,我遇到了一个无法正常工作的示例。它应该防止html表单实际提交到calculate.php,而是使用JavaScript函数calculate()来执行计算。目前,它正在提交表单,而不是使用JavaScript函数。我的代码就是书中的代码,我不知道为什么它不能正常工作 下面是我正在使用的代码:calculator.htmlJavaScript计算器不工作,javascript,jquery,html,Javascript,Jquery,Html,下面是一本JavaScript书籍的示例,我遇到了一个无法正常工作的示例。它应该防止html表单实际提交到calculate.php,而是使用JavaScript函数calculate()来执行计算。目前,它正在提交表单,而不是使用JavaScript函数。我的代码就是书中的代码,我不知道为什么它不能正常工作 下面是我正在使用的代码:calculator.html <!DOCTYPE html> <html> <head> <title&
<!DOCTYPE html>
<html>
<head>
<title>Calculator</title>
<meta charset="UTF-8" lang="en">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div id="display">
<p>Click To Show/Hide Calculator</p>
</div>
<form method="post" id="theForm" action="calculate.php">
<fieldset>
<legend>Calculate</legend>
<div>
<label for="quantity">Quantity:</label>
<input type="number" name="quantity" id="quantity" value="1" min="1" required>
</div>
<div>
<label for="price">Price per Unit:</label>
<input type="text" name="price" id="price" value="1.00" required>
</div>
<div>
<label for="tax">Tax Rate (%):</label>
<input type="text" name="tax" id="tax" value="0.0" required>
</div>
<div>
<label for="discount">Discount:</label>
<input type="text" name="discount" id="discount" value="0.00" required>
</div>
<div>
<label for="total">Total:</label>
<input type="text" name="total" id="total" value="0.00">
</div>
<div>
<input type="submit" value="Calculate" id="submit">
</div>
</fieldset>
</form>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.1.js"><\/script>')</script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.js"></script>
<script src="js/shopping.js"></script>
</body>
您的表单标签需要onsubmit:
<form method="post" id="theForm" action="calculate.php" onsubmit="return calculate()">
否则它不知道如何运行该函数
编辑-------
抱歉,我错过了你已经准备好的。无论如何,问题比那容易。这:
document.getElemenyById('total')。value=total
应该是
document.getElementById('total')。value=total
Chrome javascript控制台对于发现这些类型的键入问题非常有价值:
此函数
document.getElementById
返回元素,而不是元素的值。由于您提到的jQuery
,您可以使用$(“#id')
,这也将返回元素,您可以使用val()
方法获取元素的值,如下所示:
var quantity = $('#quantity').val();
如果那本书真的建议你把jQuery调用和普通DOM操作混合在一起,我会找另一本书。不管怎样,有什么事情发生了吗?您是否尝试添加
console.log()
消息以确保函数正在被调用?您是否已检查控制台是否存在可能的错误?您现在得到的代码不必要地导入jQuery库两次,这不会造成任何伤害,但没有必要。抱歉,我错过了。无论如何,问题比那容易。这是:document.getElemenyById('total')。value=total;应该是document.getElementById('total')。value=total;谢谢Keith,我觉得很遗憾这只是个打字错误哈哈
var quantity = $('#quantity').val();