Foros del Web » Programando para Internet » Javascript »

Redirección Innecesaria

Estas en el tema de Redirección Innecesaria en el foro de Javascript en Foros del Web. Buenas tengan todos uds. Mi problema esque tengo una página de ejemplo con JavaScript, y al presionar un botón, en lugar de símplemente hacer la ...
  #1 (permalink)  
Antiguo 02/09/2012, 17:42
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Pregunta Redirección Innecesaria

Buenas tengan todos uds.

Mi problema esque tengo una página de ejemplo con JavaScript, y al presionar un botón, en lugar de símplemente hacer la acción, me redirecciona completamente, ya le busqué bastante y aún no encuentro el error un poco de ayuda no me vendría mal.

Cita:
<html>
<head>
<title>Problema</title>

<script>
function ID(elem)
{
return document.getElementById(elem);
}//fin de function

function calcular(s1,s2,s3)
{
slct1=ID(s1);
slct2=ID(s2);
slct3=ID(s3);
total=0;
document.write("<br/><br/><br/><br/><br/><br/><br/><br/>");
total=parseInt(slct1.options[slct1.selectedIndex].value)+parseInt(slct2.options[slct2.selectedIndex].value)+parseInt(slct3.options[slct3.selectedIndex].value);
document.write("Procesador "+slct1.options[slct1.selectedIndex].text+"--->$"+slct1.options[slct1.selectedIndex].value+"<br/>");
document.write("Monitor "+slct2.options[slct2.selectedIndex].text+"--->$"+slct2.options[slct2.selectedIndex].value+"<br/>");
document.write("Disco duro de "+slct3.options[slct3.selectedIndex].text+"--->$"+slct3.options[slct3.selectedIndex].value+"<br/>");
document.write("<br/>");
document.write("Total a Pagar: "+total);
}//fin de function calcular
</script>

</head>

<body>
<form id="f1" name="f1">
Procesador:
<select size="1" id="s1" name="s1">
<option value="0">-</option>
<option value="400">Pentium III</option>
<option value="500">Pentium IV</option>
</select><br/>
Monitor:
<select size="1" id="s2" name="s2">
<option value="0">-</option>
<option value="250">Samsung 14'</option>
<option value="350">Samsung 15'</option>
<option value="550">Samsung 17'</option>
</select><br/>
Disco Duro:
<select size="1" id="s3" name="s3">
<option value="0">-</option>
<option value="300">80 Gb</option>
<option value="440">240 Gb</option>
<option value="500">800 Gb</option>
</select><br/>
<input type="button" value="Calcular" onClick="calcular('s1','s2','s3')"/>
</form>
</body>
</html>
Cualquier ayuda será bien recibida, gracias :D
  #2 (permalink)  
Antiguo 02/09/2012, 18:55
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Redirección Innecesaria

buenas,
como tal el script no tiene error. pues éste hace lo que se le ha pedido, ni mas ni menos. al final lo que obtengo es un resumen de las opciones escogida con una suma. tengo duda si lo que quieres hacer es imprimir ese resumen sin eliminar el contenido actual. en dicho caso, no puedes utilizar document.write porque ese es el efecto que produce una vez el documento html ha terminado de cargar. debes valerte por el DOM para modificar el contenido. hay varias formas de hacerlo, siendo el más básico la opción de innerHTML. primero tienes un elemento vacio con un ID. luego en la función obtienes la referencia de dicho elemento por su id —document.getElementById— y finalmente asignas el nuevo string a la propiedad innerHTML.
Código:
document.getElementById('ID').innerHTML = string;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 02/09/2012, 23:07
Avatar de TemplarKnight  
Fecha de Ingreso: octubre-2011
Ubicación: Por ahí xD
Mensajes: 26
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Redirección Innecesaria

Ok, la buena noticia, es que la consola de errores no me marca error...la mala, es que no corre, no se si lo estoy haciendo bien, ya chequé unos ejemplos en internet pero no consigo hacer que imprima todo nuevamente:

Cita:
function calcular(s1,s2,s3,f1)
{
slct1=ID(s1);
slct2=ID(s2);
slct3=ID(s3);
frm=ID(f1).innerHtml;
total=0;

total=parseInt(slct1.options[slct1.selectedIndex].value)+parseInt(slct2.options[slct2.selectedIndex].value)+parseInt(slct3.options[slct3.selectedIndex].value);

mostrar=frm+"<br/><br/>Procesador "+slct1.options[slct1.selectedIndex].text+"--->$"+slct1.options[slct1.selectedIndex].value+"<br/>"+
"Monitor "+slct2.options[slct2.selectedIndex].text+"--->$"+slct2.options[slct2.selectedIndex].value+"<br/>"+
"Disco duro de "+slct3.options[slct3.selectedIndex].text+"--->$"+slct3.options[slct3.selectedIndex].value+"<br/>"+
"_________________________________________________ _________<br/>"+
"Total a Pagar: "+total;
frm=mostrar;
}//fin de function calcular
Eso fue lo que modifiqué...

Etiquetas: html, input, select
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 12:27.