Foros del Web » Programando para Internet » Javascript »

cambiar value="" luego de haber sido utilizado en una funcion

Estas en el tema de cambiar value="" luego de haber sido utilizado en una funcion en el foro de Javascript en Foros del Web. Hola foreros, resulta que hace un tiempo vengo queriendo hacer algo como en este sitio. En donde por un lado te dan la posibilidad de ...
  #1 (permalink)  
Antiguo 14/03/2010, 02:49
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Pregunta cambiar value="" luego de haber sido utilizado en una funcion

Hola foreros, resulta que hace un tiempo vengo queriendo hacer algo como en este sitio. En donde por un lado te dan la posibilidad de elegir la cantidad de páginas y el tiempo de entrega y por otro en un div aparte presentan el precio que es resultado de la suma de opciones elegidas por el usuario.

Bien, de tanta prueba y error llegué a esto:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>formulario dinamico</title>
    <style type="text/css">
    body{font-family:Arial; font-size:18px;}
    #content{overflow:hidden;}
    #uno{width:40%; padding:10px; float:left; background-color:#eaeaea;}
    #dos{width:40%; padding:10px; float:left; background-color:#ccc;}
    .radio:hover{cursor:pointer;}
    </style>
    <script type="text/javascript">
        function cambiaNroPags (elem) { // ingresa el nuevo valor
            var elemento = document.getElementById('paginas');
            elemento.value= elem;// aca elemento es el text y elem el radio. el input text toma el valor del imput radio    
        }
        function cambiaNroDias (elem) { 
            var elemento = document.getElementById('dias');
            elemento.value= elem;
        }
    </script>

</head>

<body>    
<div ="content">
    <div id="uno">
        <form id="formulario" action="trabajo.php" method="post">
        <p>¿Cuantas páginas?</p>
            <input name="paginas" id="paginas" type="text" value="1"/>
                <input id="radiop1"   type="radio" name="nroPag"  value="1"   class="radio" onclick="javacript:cambiaNroPags(document.getElementById('radiop1').value)"/>
                <input id="radiop2"   type="radio" name="nroPag"  value="2"   class="radio" onclick="javacript:cambiaNroPags(document.getElementById('radiop2').value)"/>
                <input id="radiop3"   type="radio" name="nroPag"  value="3"   class="radio" onclick="javacript:cambiaNroPags(document.getElementById('radiop3').value)"/>
        <p>¿Cuantos días?</p>
            <input name="dias" id="dias" type="text" value="3" />
                    <input id="radiod1"       type="radio" name="nroDia"   value="1"          class="radio" onclick="javacript:cambiaNroDias(document.getElementById('radiod1').value)"/>
                    <input id="radiod2"       type="radio" name="nroDia"   value="2"          class="radio" onclick="javacript:cambiaNroDias(document.getElementById('radiod2').value)"/>
                    <input id="radiod3"       type="radio" name="nroDia"   value="3"          class="radio" onclick="javacript:cambiaNroDias(document.getElementById('radiod3').value)"/>
                        
        </form>
    </div>
    <div id="dos">
    <p>en este div va la suma <br> <a href="http://w3-markup.com/order#details" target="_blanck">aquí</a> el sitio que intento imitar</p>
    </div>
</div>
</body>
</html>
Aquí un enlace para que vean la práctica funcionando.

Bien, al grano:
¿Como puedo hacer que, por ejemplo, el radiobutton al que di un value="1" luego tome digamos un valor de 150, logrando que este valor me quede disponible para, luego, junto a los demás valores (de los demás radiobutton) poder hacer la suma y presentar la misma en el div de la derecha?

Espero me entiendan sino me explico nuevamente.

Cualquier pista me biene bien ya que por más manuales y tutoriales que leo, por ser nuevo solo consigo meter teoría en mi cabeza y me falta práctica con js, lo que me interesa muchísimo adquirir.

Un saludo!
  #2 (permalink)  
Antiguo 14/03/2010, 03:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: cambiar value="" luego de haber sido utilizado en una funcion

Hola:

Los atributos "value" de los controles de los formularios son "variables", o sea que se pueden modificar, ya sea escribiendo sobre el control si es el tipo text/textarea, o usando un script que lo sepa referenciar... y supongo que ese debe ser tu problema, al tratarse de radios, que suelen ser arrays... y como todo array, lo que debes hacer es indexarlo... o como veo en tu código, diferenciarlo mediante un id.

Pues por lo que veo lo estás aplicando, pero para su utilización, los campos de formulario son textos, así que debes convertirlos con parseInt/parseFloat...

Si lo que tienes no te funciona, tal vez haya algún error... (tal vez no entendí bien el tema... )

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/03/2010, 04:07
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: cambiar value="" luego de haber sido utilizado en una funcion

Gracias por responder caricatos. Mas el codigo que postee anda a la perfección, bah,personalmente me encanta como funciona .

El tema es que me encuentro travado al ya haber utilizado (en la funcion) a los id de los radiobuttons para dar el "número de página" al imput text (<input name="paginas" id="paginas" type="text" value="1"/>)

Entonces, luego no se como cambiar el valor de los value de los radiobuttons sin que este cambio altere el resultado de las funciones cambiaNroDias() y cambiaNroPags() ya que si esto pasa el imput text dejará de mostrar el "numero de páginas"

En resumen, debo cambiar el valor de los radiobutton de modo que sigan manteniendo el valor anterior para las funciones nombradas. Con ello conseguiría tomar estos nuevos valores para hacer la suma que se presenta en el panel de la derecha sin tirar por la borda el trabajo ya realizado.

Un saludo.
  #4 (permalink)  
Antiguo 14/03/2010, 05:05
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: cambiar value="" luego de haber sido utilizado en una funcion

Bueno, veo que semejante problema que me he hecho es en si un tropiezo de principiante.
Pues lo resolví simplemente creando una variable nueva, por dios me averguenza jaja.

unaPag = document.getElementById('radiop1').value+50; // me dara 150
dosPags = document.getElementById('radiop2').value*100-50; // me dara 150

Bueno, muchas gracias y disculpen las molestias.
  #5 (permalink)  
Antiguo 14/03/2010, 05:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: cambiar value="" luego de haber sido utilizado en una funcion

Hola:

Bueno, iba a contestar otra cosa, pero veo que ya tienes el problema resuelto... de todos modos, te cuento lo que pensaba responder, y es parecido al planteamniento:

La idea era tener otro juego de radios oculto, y mostrar uno u otro según sea el caso.

De todos modos, me alegra de que hayas sabido resolver el problema.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 14/03/2010, 05:43
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: cambiar value="" luego de haber sido utilizado en una funcion

Gracias por tomarte el tiempo caricatos, sobre todo con lo dificil que se le hace a uno que es nuevo meterse en el lenguaje, siempre es bueno que alguien con poca o mucha mas experiencia se acerque a dar una manito. Un abrazo

Etiquetas: funcion, utilidades
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 04:09.