繁体   English   中英

Javascript下拉表格数学计算

[英]Javascript drop-down form math calculation

我正在尝试创建一个包含两个下拉菜单的页面,然后当用户按下Submit时,它将基于该下拉菜单提供的数据来计算价格。 它需要从第一个下拉菜单选项中选取1或2,再乘以第二个下拉菜单选项的值,再乘以0.2,然后在用户按下Submit时将其输出。 我试图使其正常工作,但我不断收到NaN错误。 有什么帮助吗?

<head>
<script type="text/javascript">
function price() {
        var sqBn = document.priceCalc.squareOrBanner;
        var Amt = document.priceCalc.number;
    var price = sqBn * Amt * 0.2;
    document.write(price);
}
</script>

<form name="priceCalc" action="priceCalcPage.html" onsubmit="document.write(price())">
<div align="center">
<select name="squareOrBanner">
<option value="1">Square</option>
<option value="2">Banner</option>
</select>

<select name="number">
<option value="250">250</option>
<option value="500">500</option>
<option value="750">750</option>
<option value="1000">1000</option>
</select>
<br><input type="submit" value="Figure out pricing!"><br>
</div>
</form>

也许您正在寻找这样的东西:

http://jsfiddle.net/JSvSn/1/

您需要访问这些对象中的value属性:

var price = sqBn.value * Amt.value * 0.2;

编辑:这是一个使用价格更新输入框值的版本: http : //jsfiddle.net/JSvSn/5/

编辑2: 在div中显示价格。

我不确定sqBn.value是否可在所有浏览器上使用。 使用会更安全

sqBn.options[sqBn.selectedIndex].value

如果您仍然获得NaN结果,请尝试

parseInt(sqBn.options[sqBn.selectedIndex].value)

如果要执行此计算而不刷新页面,请更改表单声明,如下所示:

<form name="priceCalc" action="priceCalcPage.html" onsubmit="document.write(price());return false;">    

这样,onsubmit将被执行,但不会向操作提交任何内容。 如果要提交,仍然可以通过javascript( document.priceCalc.submit() )进行提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM