function Total(){ var oInput = document.getElementsByTagName("input"); for(var i = 0; i<oInput.length; i++){ if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
function Total(){ var num = 0; var oInput = document.getElementsByTagName("input"); for(var i = 0; i<oInput.length; i++){ if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
<form name="form1" action="a.asp" method="post">
<input name=" a1" type="text" onChange="form1. b1.value=2*parseFloat(form1. a1.value)" > <input name=" b1" type="text" disabled >
<input name=" a2" type="text" onChange="form1. b2.value=2*parseFloat(form1. a2.value)" > <input name=" b2" type="text" disabled >
......
<input name=" a100" type="text" onChange="form1. b100.value=2*parseFloat(form1. a100.value)" > <input name=" b100" type="text" disabled >
<input name="zje" type="text">
</form>
我已经将b1到b100可以自动计算,但是我想zje是b1到b100的相加的结果,我不懂如何通过循环解决问题。
<input name="a1" type="text" onChange="form1.b1.value=2*parseFloat(form1.a1.value)" > <input name="b1" type="text" disabled >
<input name="a2" type="text" onChange="form1.b2.value=2*parseFloat(form1.a2.value)" > <input name="b2" type="text" disabled > <input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled >
<input name="zje" type="text" onfocus="Total()">
<SCRIPT LANGUAGE="JavaScript">
<!--
var num = 0;
function Total(){
var oInput = document.getElementsByTagName("input");
for(var i = 0; i<oInput.length; i++){
if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){
num += parseInt(oInput[i].value);
}
}
document.getElementsByName("zje")[0].value = num;
}
//-->
</SCRIPT>
</form>
<form name="form1" action="a.asp" method="post">
<input name="a1" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b1.value='';} else {form1.b1.value=2*parseFloat(form1.a1.value);}" > <input name="b1" type="text" disabled >
<input name="a2" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b2.value='';} else {form1.b2.value=2*parseFloat(form1.a2.value);}" > <input name="b2" type="text" disabled > <input name="a100" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b100.value='';} else {form1. b100.value=2*parseFloat(form1.a100.value);}" > <input name="b100" type="text" disabled >
<input name="zje" type="text" onfocus="Total()">
<SCRIPT LANGUAGE="JavaScript">
<!--
var num = 0;
function Total(){
var oInput = document.getElementsByTagName("input");
for(var i = 0; i<oInput.length; i++){
if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){
if (parseInt(oInput[i].value)>=0)
{
num += parseInt(oInput[i].value);
}
}
} document.getElementsByName("zje")[0].value = num;
}
//-->
</SCRIPT>
</form>
<input name="a1" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b1.value='';} else {form1.b1.value=2*parseFloat(form1.a1.value);}" > <input name="b1" type="text" disabled >
<input name="a2" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b2.value='';} else {form1.b2.value=2*parseFloat(form1.a2.value);}" > <input name="b2" type="text" disabled > <input name="a100" type="text" onkeyup="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';form1.b100.value='';} else {form1. b100.value=2*parseFloat(form1.a100.value);}" > <input name="b100" type="text" disabled >
<input name="zje" type="text" onfocus="Total()">
<SCRIPT LANGUAGE="JavaScript">
<!--
var num = 0;
function Total(){
var oInput = document.getElementsByTagName("input");
for(var i = 0; i<oInput.length; i++){
if(oInput[i].name.substr(0,1)=="a" || oInput[i].name.substr(0,1)=="b" ){
if (parseInt(oInput[i].value)>=0)
{
num += parseInt(oInput[i].value);
}
}
} document.getElementsByName("zje")[0].value = num;
}
//-->
</SCRIPT>
</form>
<input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled >
<input name="zje" type="text" onfocus="Total()">
<SCRIPT LANGUAGE="JavaScript">
<!--
var num = 0;
function Total(){
var oInput = document.getElementsByTagName("input");
for(var i = 0; i<oInput.length; i++){
if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
num += parseInt(oInput[i].value);
}
}
document.getElementsByName("zje")[0].value = num;
}
//-->
</SCRIPT>
</form>
但是还是有问题我在IE中测试,填了a1及a2的值后,在zje单击鼠标后得到答案(zje=b1+b2),但是我再填了a3的值后,zje答案却错误,即zje不等于b1+b2+b3,而是zje=b1+b2+b1+b2+b3,就是zje累加多一次。
自己解决了问题
将var num = 0;放到function里面<input name="a100" type="text" onChange="form1. b100.value=2*parseFloat(form1.a100.value)" > <input name="b100" type="text" disabled >
<input name="zje" type="text" onfocus="Total()">
<SCRIPT LANGUAGE="JavaScript">
<!--
function Total(){
var num = 0;
var oInput = document.getElementsByTagName("input");
for(var i = 0; i<oInput.length; i++){
if(oInput[i].name.substr(0,1)=="b" ){//把这改下就可以了
num += parseInt(oInput[i].value);
}
}
document.getElementsByName("zje")[0].value = num;
}
//-->
</SCRIPT>
</form>