bueno, voy a asumir que algo de js sabes
Primero, tenemos que poder identificar correctamente los diferentes campos, para lo cual
usas esto
Código Javascript
:
Ver original<script type="text/javascript">
emails=0;
var c = 2;
var p = 2;
var t = 2;
function agregar() {
emails=emails+1;
$("#campos").append('<li class="email'+emails+'">\n<label>cantidad</label><input type="text" id="C_' + c + '" name="cantidad[]" size="6" value="0" onkeyup="sumar(this);"/>\n<label>precio</label><input type="text" id="P_' + p + '" name="precio[]" size="8" value="0" onkeyup="sumar(this);" />\n<label>total</label><input type="text" id="T_' + t + '" name="total[]" size="8" />\n</li>');
c++;
p++;
t++;
}
</script>
Con eso ya le agregas un id de valor único a cada uno de los campos de las filas nuevas, a la fila por defecto que te aparece tendrias que agregarle los id C_1, P_1 y T_1 para cantidad, precio y total respectivamente.
Además a todos tu campo total tenes que asignarles un mismo class
Ahora las sumas
tu campo total va ejecutando una función, la cual multiplica el valor de ese campo
(P_1 en el caso de la primera fila por el valor del campo de igual numero pero con el prefijo C_, lo cual podés obtener haciéndole un split() al id, ejemplo, si le hacés split a C_1 utilizando como separador el caracter _ te va a quedar que el numero es el indice [1], del split, solo te resta poner el resultado de la multiplicaciín en el campo T_1, es decir T_[1]
Por otra parte, tu campo "cantidad" deberá ejecutar una función que haga un document.getElementsByTagName para los input , identificar los que tengan la clase que definiste, recuperar los value, sumarlos e ir cambiando el value de resultados.
Parece complicado, pero no lo es tanto.
Demás está decir que todo este procedimiento no incluye ningún tipo de validación sobre el tipo de datos ingresados(que obviamente serán numeros enteros ó hasta con 2 decimales supongo, ya que se trata de precios
Saludos