我已经编写了一个表单的javascript代码来计算价格,而用户在文本框中键入一个数字。计算公式会根据用户在文本框中输入的数量进行更改。单选按钮表格立即计算价格
例如,如果数量在0到1200之间,则总价格=(200000 + 166.7 x facadeArea)x(projectStyle)x(projectFunction)。
问题是总价并没有改变。 请帮助我。
<html>
<font face = "Algerian" ><h2>What Kind of Project Would You Like to Order?
</h2></font>
<form name ="mdl">
Project style:<br/>
    <input type="radio" name="options" value="1"
onchange="estimateTotal(this);">modern
    <input type="radio" name="options" value="1.8"
onchange="estimateTotal(this);">classic
    <input type="radio" name="options" value="1.6"
onchange="estimateTotal(this);">traditional
    <input type="radio" name="options" value="1.7"
onchange="estimateTotal(this);">prarmetric
    <input type="radio" name="options" value="1.3"
onchange="estimateTotal(this);">organic
<input type="hidden" name="options">
<br/>
Project function:<br/>
    <input type="radio" name="style" value="1"
onchange="estimateTotal(this);">villa
    <input type="radio" name="style" value="1.4"
onchange="estimateTotal(this);">apartment
    <input type="radio" name="style" value="1.5"
onchange="estimateTotal(this);">commercial
    <input type="radio" name="style" value="1.6"
onchange="estimateTotal(this);">official
    <input type="radio" name="style" value="1.3"
onchange="estimateTotal(this);">other
<input type="hidden" name="style">
<br/>
Facade Area <br/>
    <input type="text" name="area" value="0"
onchange="estimateTotal(this);">sqm
<input type="hidden" name="area">
<br/>
<p>Total Price: <input type="text" name="total_price" value="0"
readonly="readonly"></p>
</form>
</html>
code:
<script type="text/javascript">
var projectStyle =
document.querySelector('input[name=options]:checked').value,
projectFunction =
document.querySelector('input[name=style]:checked').value,
facadeArea = document.getElementByName('area').value;
function estimateTotal(input) {
var total = parseFloat(mdl.total_price.value);
var value = parseFloat(input.value);
if (input.type === 'radio') {
if (input.name === 'options') {
if (facadeArea == 0) {total = 0;}
else if (facadeArea > 0 && facadeArea <= 1200) {
total = parseInt(200000 + 166.7 *
facadeArea)*projectStyle*projectFunction;}
else if (facadeArea > 1200 && facadeArea <= 4000) {
total = parseInt(400000 + 35.71 *
facadeArea)*projectStyle*projectFunction;}
else if (facadeArea > 4000 && facadeArea <= 10000) {
total = parseInt(500000 + 16.66 *
facadeArea)*projectStyle*projectFunction;}
else {total = 700000;}
}
}
mdl.total_price.value = total;
}
</script>
什么是您所遇到的错误?根本没有显示总数**或**您得到的总数不正确**或**是系统错误? –
这是什么工作?你有错误吗?计算的价格是否错误?没有任何事情发生? – Cleared
错误在于总价格错误。只是显示“700000” –