【问题标题】:Javascript calculation not returning to text boxJavascript计算不返回文本框
【发布时间】:2013-02-15 19:37:41
【问题描述】:

我正在做一个简单的表格,用户输入他们的长度、宽度、高度和件数,然后计算立方英尺,并在表格中显示答案。所以我在这里尝试这样做,但我不知道为什么没有显示答案。身份证都是对的。我已经尝试使用 ParseFloat 并在计算中的每个变量周围加上括号,但这似乎没有任何作用。问题可能是什么?

感谢观看。

<HTML>
<HEAD>
<TITLE>Cubic Feet</TITLE>
<SCRIPT LANGUAGE="JavaScript">


function Calculate()
{
var qty1 = document.getElementById('q1').value;
var len1 = document.getElementById('l1').value;
var width1 = document.getElementById('w1').value;
var height1 = doument.getElementById('h1').value;
var cube1 = qty1*(len1*width1*height1);

form.cuft1.value = cube1.tofixed(2);

}

function ClearForm(form)
{
form.q1.value = "";
form.l1.value = "";
form.w1.value = "";
form.h1.value = "";
form.cuft1.value = "";
}

// end of JavaScript functions -->
</SCRIPT>
</HEAD>

<BODY>

<FORM NAME="Calculator" METHOD="post">


<P><INPUT TYPE="button" VALUE="Calculate" name="AddButton" onClick="Calculate(this.form.q1.value, this.form.h1.value, this.form.w1.value, this.form.l1.value, this.form)">
<INPUT TYPE="button" VALUE="Clear" name="ClearButton" onClick="ClearForm(this.form)">

<p>
<table>
<tr>
<td> Container 1 Qty <input type="TEXT" id="q1" value=""></td>
<td> Length <input type="TEXT" id="l1" value=""></td>
<td> Width <input type="TEXT" id="w1" value=""></td>
<td> Height <input type="TEXT" id="h1" value=""></td>
<td> Cu.Ft. <input type="TEXT" id="cuft1" value=""></td>
</tr>
</table>
</FORM>
</BODY>
</HTML>

【问题讨论】:

  • 语言属性已过时。请改用type="text/javascript"
  • @crush 事实上,最好不要使用语言或类型。类型始终默认为“text/javascript”。它已在 HTML5 中正式发布,但之前在所有浏览器中都可以使用。
  • @dystroy 根据什么?我相信只有在 HTML5 中才会出现这种情况。
  • @dystroy The W3C Working Draft 没有说要省略 type。但是,它确实说 language 已过时。

标签: javascript


【解决方案1】:

你有一系列愚蠢的错误:

  1. documentgetElementById('w1').value; 应该是document.getElementById('w1').value;

  2. doument.getElementById('h1').value; 应该是document.getElementById('h1').value;

  3. form 未定义。试试var form = document.forms[0]

  4. cube1.tofixed(2); 应该是cube1.toFixed(2);

所有这些错误都可以通过打开浏览器的开发者控制台轻松发现...

这里是固定的工作版本:http://codepen.io/anon/pen/bzcdx

【讨论】:

  • +1,因为还没有人愿意为最完整(和经过测试)的答案投票。
  • 谢谢。感谢您在宣传反对 DOM 0 级方法方面所做的努力。
  • 当我不停地喝咖啡并使用记事本尝试编写javascript时会发生这种情况。我已经为 CodePen 添加了书签,因为它在 HTML、JS 和 CSS 的窗口中非常整洁! +1 也。谢谢 bfavaretto & dystroy
【解决方案2】:
this.form.q1.value

查找具有名称 q1的输入。

改用这个:

document.getElementById('q1').value

您在其他方面也有同样的错误。最好始终使用 id。

【讨论】:

  • @Shawn 无处不在。不要使用表单来查找您的输入,只需使用他们的 ID。
【解决方案3】:

试试

document.getElementById("cuft1").value = cube1.tofixed(2);

【讨论】:

    猜你喜欢
    • 2011-08-13
    • 2017-10-25
    • 2021-03-24
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多