从表单中获取用户输入执行计算(操作顺序)并输出回该表单
take user input from a Form perform calculation (order of operations) and output back into that form
我试图从Form(INPUT1)的一个元素中获取输入,并执行一个基本上OUTPUT1=((INPUT1/20).58).30的计算我已经看到了很多将CM转换为英寸等的例子。但没有操作顺序。请帮忙!墙和我的头相遇太多次了。这就是我目前所拥有的,(不起作用)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transititonal//EN"
""http://www.w3.org/TR/XHTML1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<form name="TESTING">
<table border="1" width="600" height="200" cellpadding="10" cellspacing="3">
<tr><th colspan="2"><h1>TESTING</h1></th></tr>
<tr> <th><h3>INPUT</h3></th>
<th><h3>OUTPUT</h3></th> </tr>
<tr></tr>
<td><input type="number" name="INPUT1"/></td>
<td><input type="number" name="OUTPUT1"></td>
<table>
</form>
<script type="text/javascript">
var USERINPUT1 = document.TESTING.INPUT1.value;
var CALC1 = USERINPUT1/20;
var CALC2 = CALC1*.585;
var CALC3 = CALC2*.30;
var CALC3 = OUTPUT1;
</script>
</body>
</html>
您做错了几件事。
首先,必须在特定时间读取输入值。例如,当按下按钮时,当输入字段的值发生变化或类似情况时。在您的情况下,当输入字段没有任何值时,文档一经解析就被读取。
其次,您没有将结果写入输出字段。这一行var CALC3 = OUTPUT1;
重新声明CALC3变量,并为其提供值OUTPUT1。您想要的是将字段OUTPUT1的值设置为CALC3
试试这个:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transititonal//EN"
""http://www.w3.org/TR/XHTML1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
<form name="TESTING">
<table border="1" width="600" height="200" cellpadding="10" cellspacing="3">
<tr><th colspan="2"><h1>TESTING</h1></th></tr>
<tr> <th><h3>INPUT</h3></th>
<th><h3>OUTPUT</h3></th> </tr>
<tr></tr>
<td><input type="number" name="INPUT1" id="input" onchange="calculate();"/></td>
<td><input type="number" name="OUTPUT1" id="output"></td>
<table>
</form>
<script type="text/javascript">
function calculate() {
var USERINPUT1 = document.TESTING.INPUT1.value;
var CALC1 = USERINPUT1/20;
var CALC2 = CALC1*.585;
var CALC3 = CALC2*.30;
document.TESTING.OUTPUT1.value = CALC3;
}
</script>
</body>
</html>
当第一个输入字段的值发生变化时,它会调用函数calculate()(onchange="calculate();"
),然后自动更新第二个字段(您可以像读取document.TESTING.OUTPUT1.value = CALC3;
一样写入值)。
[编辑]代码的第一个版本与您的非常相似,因此您将能够更容易地理解它,但您也应该看看这一点。你有一些放错地方的表行标签和一些不整洁的代码,所以我也清理了一下。这离最佳实践还很远,但它是页面的改进版本
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form name="TESTING">
<table border="1" width="600" height="200" cellpadding="10" cellspacing="3">
<tr>
<th colspan="2">
<h1>TESTING</h1>
</th>
</tr>
<tr>
<th>
<h3>INPUT</h3>
</th>
<th>
<h3>OUTPUT</h3>
</th>
</tr>
<tr>
<td>
<input type="number" name="INPUT1" id="input" onchange="calculate();"/>
</td>
<td>
<input type="number" name="OUTPUT1" id="output">
</td>
</tr>
</table>
</form>
<script type="text/javascript">
function calculate() {
var USERINPUT1 = document.TESTING.INPUT1.value,
RESULT = (USERINPUT1/20) * .585 * .30;
document.TESTING.OUTPUT1.value = RESULT;
}
</script>
</body>
</html>
你能使用jQuery吗?
如果是,则使用您提供的内容:http://jsfiddle.net/vuYMs/
否则,我可以修改它,使其在没有jQuery的情况下工作。
编辑:
这里有一个更面向javascript的解决方案:http://jsfiddle.net/vuYMs/3/
var input1 = document.getElementsByName("INPUT1")[0];
var output1 = document.getElementsByName("OUTPUT1")[0];
function changeInput(e){
var calc = (((input1.value/20)*0.585)*0.30);
output1.value = calc;
}
input1.onchange = changeInput;
下面的代码将构建必要的自动计算器。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function calculate(ele)
{
var result = ((ele / 20) * 0.585) * 0.30;
document.getElementById("output1").value = result;
}
</script>
<style type="text/css">
body { font-family:Arial, Helvetica, sans-serif; font-size:12px; line-height:18px; margin:0; padding:0; }
.container { background:#0CC; border:1px dotted #bbb; margin:40px auto 0 auto; padding: 20px; width:500px; }
h1 { font-family:Georgia, "Times New Roman", Times, serif; font-style:italic; font-weight:bold; text-align:center; text-decoration:underline; }
input { border:1px solid #eee; }
.container p label { width:100px; float:left; }
p { clear:both; }
</style>
</head>
<body>
<form name="testing" method="post" action="">
<div class="container">
<h1> My Calculator</h1>
<p><label>Input : </label><input type="number" name="input1" value="" onBlur="calculate(this.value);"/></p>
<p><label>Output : </label><input type="number" name="output1" id="output1"></p>
</div>
</form>
</body>
</html>
- 可以't让我的if语句处理js中的html表单输入
- 如何使用WCF服务和javascript表单post上传.doc文件
- Javascript生成的表单未提交
- 如何使用javascript或html下载PDF格式的填写表单
- HTML表单提交时未执行外部函数
- 在表单OnChange中交换数字顺序
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 使用Ajax以特定的顺序提交特定的表单
- 保证HTML表单提交和jQuery onclick的执行顺序
- 表单提交时,点击顺序功能并提交
- 确保HTML表单按特定顺序填写
- 表单事件顺序-在前端使用表单数据
- 返回表单提交中列表项的随机顺序
- 按钮必须按一个特定的顺序发送表单- jquery
- 简单的方式来改变输入字段的视觉顺序动态(不改变表单HTML)
- 顺序执行事件侦听器,然后按enter键提交表单
- 按字母顺序排序php/html表单中的下拉列表值
- 编写脚本以按顺序对表单输入字段进行编号
- 如何从任意顺序的两个选择表单中找到这两个数字
- Javabean和表单提交执行顺序问题