<HTML>
<HEAD>
<SCRIPT><!--
function additem() {
var e=window.event.srcElement,n=e;
while(n=n.nextSibling)if(n.name=="total[]")break;
if(n)n.value+=e.value
}
//--></SCRIPT>
</HEAD>
<BODY>
<FORM NAME="f">
<SELECT NAME="S[]" SIZE="1"  ONCHANGE="additem()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<INPUT type="text" name="total[]">
<SELECT NAME="s[]" SIZE="1"  ONCHANGE="additem()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<INPUT type="text" name="total[]"><SELECT NAME="S[]" SIZE="1"  ONCHANGE="additem()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
<INPUT type="text" name="total[]">***有数10行***
</FORM>
</BODY>

解决方案 »

  1.   

    非常感谢,但还是有些不明白:function additem() {
    var e=window.event.srcElement,n=e;
    while(n=n.nextSibling)if(n.name=="total[]")break;
    if(n)n.value+=e.value
    }中只指定了total[]而用nextSibling来定位s[],
    当total[]与s[]的相对位置改变时(比如total[]在s[]之前或中间隔几个<INPUT type="text"> name="ssss[]">)时total[]不能得到值.有办法吗?
      

  2.   

    呵呵,终于用previousSibling搞定了BTW>能推荐些资料吗?我只有一本Javascript从入门到精通好像找不到previousSibling,nextSibling的内容.BTW>这分怎么给你啊?