Foros del Web » Programando para Internet » Javascript »

Me resulta indefinido....

Estas en el tema de Me resulta indefinido.... en el foro de Javascript en Foros del Web. Hola foreros Estoy haciendo esto pero me sale undefined, la variable subram y subhd, sin embargo la variable precio, me la agarra bien, en consecuencia ...
  #1 (permalink)  
Antiguo 12/06/2005, 17:59
 
Fecha de Ingreso: agosto-2004
Mensajes: 51
Antigüedad: 19 años, 8 meses
Puntos: 0
Sonrisa Me resulta indefinido....

Hola foreros

Estoy haciendo esto pero me sale undefined, la variable subram y subhd, sin embargo la variable precio, me la agarra bien, en consecuencia la variable preciotot me sale NaN

Código:
<script> 
var precio,subram,subhd,preciotot;
precio=50;
///////////////////////////////////
function comprueba(){
if(document.sol.ram.value=="pequena"){
subram=25;
}
if(document.sol.ram.value=="grande"){
subram=30;
}
if(document.sol.hd.value=="little"){
subhd=35;
}
if(document.sol.hd.value=="big"){
subhd=45;
}
preciotot = ((subram) + (subhd) + (precio));
document.getElementById('totales').innerHTML=preciotot;
}
</script>
<form name=sol>
<input name="ram" type="radio" onclick="comprueba();" value="pequena">RAM 1

<input name="ram" type="radio" onclick="comprueba();" value="grande">RAM 2
<br>
<input name="hd" type="radio" onclick="comprueba();" value="little">HD 1

<input name="hd" type="radio" onclick="comprueba();" value="big">HD 2

<br><div id="totales"></div>

<p>
</form>
Les agradeceria me señalaran mi error

Saludos
  #2 (permalink)  
Antiguo 12/06/2005, 23:58
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola.

Prueba con esto:
Código:
<script> 
var precio,subram,subhd,preciotot;
precio=50;
///////////////////////////////////
function calcula(){
preciotot = ((subram) + (subhd) + (precio));
document.getElementById('totales').innerHTML = preciotot;
}
</script>
<form name="sol">
<input name="ram" type="radio" onclick="subram=20">RAM 1

<input name="ram" type="radio" onclick="subram=30">RAM 2
<br>
<input name="hd" type="radio" onclick="subhd=40">HD 1

<input name="hd" type="radio" onclick="subhd=50">HD 2
<br>
<input type="button" value="Calcula precio" onclick="calcula()">
<br><div id="totales"></div>

<p>
</form>
Para terminar de mejorarlo, faltaría validar que hay elementos seleccionados antes de calcular el precio.

Te explico porque no funcionaba el tuyo con un ejemplo.

* Cuando elijes por ejemplo RAM 1, mandas a la función comprobar los precios y hacer el cálculo. Pero te sale indefinido porque aún no esta seleccionado el HD. Con lo cual 'subhd' no tiene valor.


Un saludete.

Última edición por Carlitos; 13/06/2005 a las 00:23
  #3 (permalink)  
Antiguo 13/06/2005, 00:17
Avatar de Carlitos
Usuario no validado
 
Fecha de Ingreso: mayo-2001
Ubicación: Zaragoza
Mensajes: 1.304
Antigüedad: 23 años
Puntos: 25
Hola otra vez.

Prueba esta segunda opción.
Código:
<script> 
subram=0
subhd=0
preciotot=0
precio=50;
///////////////////////////////////
function comprueba(esto){
if(esto=="pequena"){
subram=25;
}
if(esto=="grande"){
subram=30;
}
if(esto=="little"){
subhd=35;
}
if(esto=="big"){
subhd=45;
}
preciotot = ((subram) + (subhd) + (precio));
document.getElementById('totales').innerHTML = preciotot;
}
</script>
<form name=sol>
<input name="ram" type="radio" onclick="comprueba(this.value);" value="pequena">RAM 1

<input name="ram" type="radio" onclick="comprueba(this.value);" value="grande">RAM 2
<br>
<input name="hd" type="radio" onclick="comprueba(this.value);" value="little">HD 1

<input name="hd" type="radio" onclick="comprueba(this.value);" value="big">HD 2

<br><div id="totales"></div>

<p>
</form>
Con este código, el precio se te va actualizando a medida que seleccionas el componente.
  #4 (permalink)  
Antiguo 13/06/2005, 15:58
 
Fecha de Ingreso: agosto-2004
Mensajes: 51
Antigüedad: 19 años, 8 meses
Puntos: 0
Te agradesco tu ayuda, funciono perfectamente

Gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:45.