Javascript 我的js函数添加得不完美
如您所见,我在表中筛选的(总计)文本框中已经有一个值……如果我在(分数)文本框中键入一个数字,它将自动添加到总计(文本框)的当前值上 我的问题是它添加得不完美。有人能帮我吗 例如: html代码:Javascript 我的js函数添加得不完美,javascript,php,html,Javascript,Php,Html,如您所见,我在表中筛选的(总计)文本框中已经有一个值……如果我在(分数)文本框中键入一个数字,它将自动添加到总计(文本框)的当前值上 我的问题是它添加得不完美。有人能帮我吗 例如: html代码: <form id="frm" name="frm" /> <table> <tr> <td> Name: <br /> <input type="text" name="name" value="<?php if(empty($
<form id="frm" name="frm" />
<table>
<tr>
<td>
Name: <br />
<input type="text" name="name" value="<?php if(empty($name[0])){$name[0] = array(NULL);}else{echo $name[0];} ?>" readonly /> <br />
</td>
<td>
Score 1: <br />
<input type="text" name="optA" value="" onchange="optTotal()" /> <br />
</td>
<td>
Score 2: <br />
<input type="text" name="optB" value="" onchange="optTotal()" /> <br />
</td>
<td>
Score 3: <br />
<input type="text" name="optC" value="" onchange="optTotal()" /> <br />
</td>
<td>
Score 4: <br />
<input type="text" name="optD" value="" onchange="optTotal()" /> <br />
</td>
<td>
Total: <br />
<input type="text" name="totals" value="<?php if(empty($total[0])){$total[0] = array(NULL);}else{echo $total[0];} ?>" readonly onKeyUp="optTotal()" /> <br />
</td>
</form>
名称:
您的问题是没有将原始值存储在任何位置
当您再次运行代码时,您从总数(您已经添加了2个)中获取当前值,然后再次添加5,因此值现在当然是15(10+5)
您需要获取加载时的原始值并将其存储,以便始终添加到原始总值中,或者获取文本框已更改的旧值,并在添加新值之前将其从总值中减去
就我个人而言,我认为第一种方法可能更容易
所以像这样的加载:
var xtotal = 0; // define this somewhere so you can access it later in a closure or a global
var xtotalElement = document.forms[0].totals;
if (xtotalElement.value && xtotalElement.value != "")
xtotal = parseFloat(xtotalElement.value);
现在在您的optottal
中:
function optTotal() {
// get all the text boxes *except* the total as before
// ...
var total = a1 + b1 + c1 + d1 + xtotal; // this should be the original xtotal set on load
document.forms[0].totals.value = total;
}
这是一张工作票
function optTotal() {
// get all the text boxes *except* the total as before
// ...
var total = a1 + b1 + c1 + d1 + xtotal; // this should be the original xtotal set on load
document.forms[0].totals.value = total;
}