Cita:
Iniciado por walterdevel Con document.getElementsByName obtenés una colección de elementos ( un array ). Por lo que no podés acceder con objCampo1.value, sinó con objCampo1[0].value. Se manejan como array, no como objetos.
Gracias por tu respuesta he realizado el cambio que me dices pero no funciona, ya no me sale error pero igual no me calcula, algo debo estar haciendo mal:
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
var objCampo1=document.getElementsByName('saldo[]');
var objCampo2=document.getElementsByName('fisico[]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[0].value!='')&&(objCampo2[0].value!=''))
{
resultado.value = parseInt(objCampo1[0].value)- parseInt(objCampo2[0].value);
}
}
function NoRestar(){
clearInterval(interval);
}
</script>
tambien lo realice dentro de un for asi
<script type="text/javascript">
function Restar(){
interval = setInterval("calcular()",1);
}
function calcular(){
Elements = document.form.elements.length;
for(i=0;i<=(Elements-2);i++) {
var objCampo1=document.getElementsByName('saldo[i]');
var objCampo2=document.getElementsByName('fisico[i]');
var resultado=document.getElementsByName('diferencia') ;
if((objCampo1[i].value!='')&&(objCampo2[i].value!=''))
{
resultado.value = parseInt(objCampo1[i].value)- parseInt(objCampo2[i].value);
}
}
}
function NoRestar(){
clearInterval(interval);
}
</script>
pero igual no calcula...