我假设您知道如何使用浏览器的Inspect element 功能获取attribute5 列下的文本框的名称属性。它类似于“f01”、“f02”或更高,只需检查一下。
另一个假设(基于您给定的数据)是第 5 行包含第 1 到第 4 行的总数,第 7 行包含第 5 和第 6 行的总数。
获得名称后,将此函数粘贴到页面的“函数和全局变量声明”属性中:
function setTotals(itemname){
var v_subtotal=0;
var v_total=0;
for(i=0;i<4;i++){
v_subtotal = Number(v_subtotal) + Number(document.getElementsByName(itemname)[i].value);
}
v_total = Number(v_subtotal) + Number(document.getElementsByName(itemname)[5].value);
document.getElementsByName(itemname)[4].value = v_subtotal;
document.getElementsByName(itemname)[6].value = v_total;
}
function setOnChangeEvent(itemname){
for(i=0;i<4;i++){
document.getElementsByName(itemname)[i].setAttribute("onchange","setTotals(\"" + itemname + "\")");
}
$("[name=" + itemname + "]").eq(5).change(function(){
$("[name=" + itemname + "]").eq(6).val(Number($("[name=" + itemname + "]").eq(4).val()) + Number($("[name=" + itemname + "]").eq(5).val()));
});
$("[name=" + itemname + "]").eq(4).attr("disabled","disabled");
$("[name=" + itemname + "]").eq(6).attr("disabled","disabled");
}
然后在页面的“页面加载时执行”属性中,输入以下代码行:
setTotals(itemname );
setOnChangeEvent(itemname );
一个例子是
setTotals("f02");
setOnChangeEvent("f02");
下面是代码的简要说明:
“setTotals”函数执行以下操作:
它将小计框的值设置为您在参数“f02”中提供的名称下的第一个到第四个文本框的总和。
它还根据第 6 个文本框的总和和为小计文本框计算的值设置总计框的值。
“setOnChangeEvent”函数执行以下操作:
它将框 1 到 4 的 onchange 事件设置为 setTotals("f02") 因此,如果您要检查上述框之一,它现在看起来像这样:
<input onchange="setTotals('f02')" name="f02" size="20" maxlength="2000" value="5" type="text">
它还设置了第 6 个盒子的 change 事件。(我认为它的 change 事件发生的事情是不言自明的,只需看代码)
该函数的最后一部分禁用了第 4 和第 7 个文本框。