【问题标题】:Trouble taking two user chosen inputs and doing calculation无法接受两个用户选择的输入并进行计算
【发布时间】:2012-07-18 22:41:44
【问题描述】:

我的 html 代码获取两个用户选择的输入数字并进行计算。在用户选择输入后,它无法实际进行计算。当我输入这两个数字并按下计算时,它什么也没做。

function calc(form)
{
if(isNaN(form.resistance.value))
 {
 alert("Error in input");
 return false;
 }

if(form.resistance.value.length > 32)
 {
 alert("Error in input");
 return false;
  }
 function calc(form1)
{
  if(isNaN(form1.strain.value))
 {
 alert("Error in input");
 return false;
}

 if(form1.strain.value.length > 32)
{
 alert("Error in input");
   return false;
} 



var Rchange = 2 * form1.strain.value * form.resistance.value;


 var newResistance =(parseInt(form.resistance.value) + Rchange);
document.getElementById("newResistance").innerHTML = chopTo4(newResistance);

}

function chopTo4(raw)
{
 strRaw = raw.toString();
 if(strRaw.length - strRaw.indexOf("0") > 4)
strRaw = strRaw.substring(0,strRaw.indexOf("0") + 5);
  return strRaw;
 }

</script>

</head>
<body>


<table>
<tr><form1><td>Enter Strain: </td><td><input style="text-align:right" type="text" name="strain"></td></tr>
</table>
<table>
<tr><form><td>Enter Resistance: </td><td><input style="text-align:right" type="text" name="resistance"></td></tr>
<tr><td colspan=2 align="center"><input type="button" value="Calculate" onClick="calc(this.form)"></td></form></tr>
<tr><td>New Resistance: </td><td id="newResistance"></td></tr>
</table>  

【问题讨论】:

  • 注意:你不能把&lt;form&gt;放在&lt;tr&gt;和&lt;td&gt;元素之间
  • 并且有 2 个结束表格标签,而只有一个开始表格标签
  • 还有一件事,我试图编辑你的代码以改进格式,我注意到有很多缺少花括号,如果这是你的实际代码而不是复制的结果-粘贴然后只是修复您的语法错误,如果仍然无法正常工作,请尝试您的程序返回没有语法错误的代码
  • 没错,首先验证你的js和html代码。看在上帝的份上,如果您编写如此混乱的代码,请使用 JsLint! :P
  • 对不起,我正在使用 Notepad++ 编写我的代码,所以我没有看到错误我只是将我的代码直接运行到 Web 浏览器。我整理了一下代码。

标签: javascript html forms


【解决方案1】:
function calc(form)
{
 if(isNaN(form.resistance.value))
{
 alert("Error in input");
 return false;
 }

if(form.resistance.value.length > 32)
 {
 alert("Error in input");
 return false;
 }



var Rchange = 2 * form.strain.value * form.resistance.value;


var newResistance =(parseInt(form.resistance.value) + Rchange);
  document.getElementById("newResistance").innerHTML = chopTo4(newResistance);

  }

function chopTo4(raw)
{
 strRaw = raw.toString();
 if(strRaw.length - strRaw.indexOf("0") > 4)
strRaw = strRaw.substring(0,strRaw.indexOf("0") + 5);
return strRaw;
}

</script>

</head>
<body>


<table>
 <tr><form><td>Enter Strain: </td><td><input style="text-align:right" type="text" name="strain"></td></tr>
</table>
<table>
 <tr><form><td>Enter Resistance: </td><td><input style="text-align:right" type="text" name="resistance"></td></tr>
 <tr><td colspan=2 align="center"><input type="button" value="Calculate" onClick="calc(this.form)"></td></form></tr>
<tr><td>New Resistance: </td><td id="newResistance"></td></tr>
</table>

【讨论】:

  • 这并不是真正的答案。告诉我们出了什么问题,以及您是如何解决的。
  • 在我的原始代码中,我输入应变值的形式,然后调用函数进行计算,但我不想这样,我只想像使用输入值一样变量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多