Javascript:添加多个字段在一起,并插入到总计列的表单
Javascript: Add multiple fields together and insert into Totals column on Form
我是javascript新手,正在制作一个基本的HTML时间表表单。我只是试图将各种小时类型(常规,加班,病假等)加在一起,并将计算值放入"总小时数"文本框中。以下是我尝试的函数(我现在只使用1个文本框,但希望就如何合并其他文本框提供建议):
<script>
function findTotal(hours, tot) {
var hours = document.getElementsbyID('hours1').value;
var tot = 0;
for (var i = 0; i < hours.length; i++) {
if (parseInt(hours[i].value))
tot += parseInt(hours[i].value);
}
document.getElementById('total').value = tot;
}
</script>
下面是相应的HTML表单部分:
<b>HOURS</b>
<table width="25%" border="1" cellpadding="0" cellspacing="0" style="background-color: #ffffff;">
<tr valign="Top">
<td style="border-width : 0px;">
<br /><b>Regular</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal(hours)" id="hours1" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Overtime</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours2" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Sick</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours3" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Holiday</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours4" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Vacation</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours5" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Leave</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours6" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>Jury Duty</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" id="hours7" size="5">
</td>
</tr>
<tr valign="top">
<td style="border-width : 0px;">
<br /><b>TOTAL HOURS</b>
</td>
<td style="border-width : 0px;">
<br />
<input type="text" onblur="findTotal()" size="5" id="total">
</td>
</tr>
</table>
提前感谢您的帮助!
马特
如果您多次执行相同的操作,请考虑如何使用CSS(选择器)或JavaScript(循环)来实现。
清理HTML:
<b>HOURS</b>
<table id="myTable" width="25%">
<tr valign="top">
<td>Regular</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>Overtime</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>Sick</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>Holiday</td>
<td>
<input type="text" id="hours4" size="5" />
</td>
</tr>
<tr valign="top">
<td>Vacation
</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>Leave</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>Jury Duty</td>
<td>
<input type="text" size="5" />
</td>
</tr>
<tr valign="top">
<td>TOTAL HOURS</td>
<td>
<input type="text" size="5" id="total" />
</td>
</tr>
</table>
将分隔 JavaScript和HTML是很好的做法。如果你使用HTML和JavaScript,最好了解如何访问,例如这里的表, 没有类(getElementsByClassName
)和没有id (getElementById
)。
遍历表中的表行。因此存在行和单元格:
var table = document.getElementById("myTable");
var rows = table.rows;
var rowsLength = rows.length // the number of all rows in the table
示例第一行第一个单元格:
var firstRowFirstCell = rows[0].cells[0];
在这里,我们遍历没有最后一行(总数)rowsLength - 1
的行。input
在第二个单元格中。因此我们需要document.getElementsByTagName
var input = rows[i].cells[1].getElementsByTagName("input");
添加addEventListener
:
input[0].addEventListener("blur", function() { ... });
表示除total(最后一个)以外的所有输入。指定
function totalHours(containerID) {
var table = document.getElementById(containerID);
var rows = table.rows;
var rowsLength = rows.length;
var total = 0;
for(var i = 0; i < (rowsLength - 1); i += 1) { // not the TOTAL input!
var input = rows[i].cells[1].getElementsByTagName("input");
if(input[0].value !== "") { // no empty inputs
total += parseInt(input[0].value);
}
}
return total;
}
。
完整的示例
相关文章:
- javascript,HTML表单:单击按钮插入NULL
- 使用 JavaScript 将数据从站点 A 插入到站点 B 中的表单中
- 通过 Yii2 表单插入数据时获取空值
- 在表单未传递的情况下使用.html()动态插入隐藏文本字段
- 使用javascript创建动态插入表单
- 将JS中的一个变量插入Django表单输入字段
- 使用Ajax插入Mysql表单php,无需重新加载页面
- 如何在网页中插入打印表单的“打印”按钮
- 需要使用Javascript动态插入表单
- 动态表单无法正确插入到 MySQL 数据库中
- 如何在表单输入元素内的数组中插入数据
- 在表单标记(HTML,JavaScript)中插入
- Jquery 插入 表单提交后丢失
- 将 JavaScript 值插入表单域
- 如何使用 javascript(或 PHP)将值插入表单中,具体取决于访问者的推荐
- javascript插入表单submit
- UseMap将数据插入表单
- 如何使用<脚本src="">在页面中插入表单
- 将facebook用户信息插入表单
- 选择表格行并插入表单Javascript