从内部HTML更改为表单时获得意外结果,输入类型文本字段
Getting unexpected result when changing from innerHTML to form, input type text Field
当我使用 innerHTML 测试我的代码时,给出了 var num1=57; 得到正确的结果 73.375,现在当输入数字 57 时将代码更改为使用带有输入类型文本框的表单时,它将预期结果更改为 629.625.. 任何帮助将不胜感激
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<link rel="style" href="css/main.css" type"text/css"/>
<title> Get final width </title>
<script type= "text/javascript">
function sum()
{
var num1;
num1= document.getvalue.width.value;
var acc1 = (num1 + 0.625)/(6.25-0.5);
var acc2 = Math.ceil((acc1 * 10) / 10) * 6.25 + (4.125 + 0.5);
document.getElementById('finalwidth').value = (acc2).toFixed(3);
document.getElementById("finalwidth").readOnly=true;
}
</script>
</head>
<body>
<div>
<h3> when input is 57 final width result should be : 73.375</h3>
<h3> when input is 100 final width result should be : 117.125</h3>
</div>
<form name= "getvalue">
<label for="width"> Width: </label>
<input type="text" name="width" maxlength="5" size="10" value=""/>
<input type="button" name="button" Value="calculate" onclick="sum()"/>
<label for="finalwidth"> Final width: </label>
<input type="text" id="finalwidth" name="finalwidth" maxlength="4" size="10" value=""/>
</form>
</body>
试试这个:- http://jsfiddle.net/adiioo7/6q8u5/1/
.JS:-
function sum() {
var num1;
num1 = parseInt(document.getvalue.width.value);
var acc1 = (num1 + 0.625) / (6.25 - 0.5);
var acc2 = Math.ceil((acc1 * 10) / 10) * 6.25 + (4.125 + 0.5);
document.getElementById('finalwidth').value = (acc2).toFixed(3);
document.getElementById("finalwidth").readOnly = true;
}
当你这样做时:
num1 = document.getvalue.width.value;
num1 的值是一个字符串(因为表单控件值始终是字符串)。因此,当您这样做时:
num1 + 0.625
这些值连接为字符串,而不是作为数字添加。所以如果 num1 的值是 57
,那么上述表达式的结果将是字符串 570.625
。因为进行了其他算术运算,最终结果为:
(num1 + 0.625)/(6.25 - 0.5)
将是一个数字。
简单的解决方法是使用一元+
运算符将 num1 转换为数字:
var num1 = +document.getvalue.width.value;
或
var acc1 = (+num1 + 0.625)/(6.25 - 0.5)
你也可以更明确地使用数字作为函数:
var num1 = Number(document.getvalue.width.value);
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 逻辑和/或运算符-意外的最终结果
- Javascript:函数返回意外结果
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- 按位或意外结果
- 来自 JavaScript 循环的意外结果
- 从 JavaScript 中的图像中读取像素数据会返回半透明像素的意外结果
- 在 JS 中短路空数组会产生意外结果:“[] ||真 == []'
- NodeJS中的Parse Json文件在Node中显示意外结果
- 做了一个javascript小实验,需要你的帮助才能理解意外的结果
- 基于给出意外结果的提示输入的逻辑
- JavaScript Regexp.test返回意外结果
- 推入数组会产生意外的结果
- 键控产生意外结果.HTML5游戏
- Javascript do/while循环显示意外结果
- 来自 CSS 和 jQuery 的意外结果
- MongoDB mapReduce方法意外结果
- 具有意外结果的 Javascript 函数参数
- 如何在集合中的项上触发 jQuery 事件(意外的 jQuery 结果来自 $._data() 与集合的第一个元素)
- 在 JavaScript 中解析日期字符串的意外结果