Foros del Web » Programando para Internet » Javascript »

radiobotones dependientes para mostrar valor en un input text

Estas en el tema de radiobotones dependientes para mostrar valor en un input text en el foro de Javascript en Foros del Web. Hola compas, resulta que tengo un script con el que quiero lograr que dos grupos de radiobotones queden dependientes y con ello pasar un valor ...
  #1 (permalink)  
Antiguo 26/03/2010, 14:59
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
radiobotones dependientes para mostrar valor en un input text

Hola compas, resulta que tengo un script con el que quiero lograr que dos grupos de radiobotones queden dependientes y con ello pasar un valor a un input de texto.

Bien no se que esta andando mal, o si todo anda mal que se yo. una manito? aqui les dejo el código.

Código:
function total(){
        var PAG1 = document.getElementById("radiop1").value;
        var PAG2 = document.getElementById("radiop2").value;
        var PAG3 = document.getElementById("radiop3").value;
        var DIA1 = document.getElementById("radiod1").value;
        var DIA2 = document.getElementById("radiod2").value;

        var TOTAL1 = document.getElementById("total1").value;

        //alert("anda la funcion 2");

            if(PAG1==checked  && DIA1==checked){
            TOTAL1 = 249; 
            }
            else if(PAG2==checked  && DIA1==checked){
            TOTAL1 = 398;
            }
            else if(PAG3==checked  && DIA2==checked){
            TOTAL1 = 513;
            }
        }
Código HTML:
<input id="radiop1" type="radio" name="nroPag" value="1" class="radio" onclick=" total()"/>
<input id="radiop2" type="radio" name="nroPag" value="2" class="radio" onclick=" total()"/>
<input id="radiop3" type="radio" name="nroPag" value="3" class="radio" onclick=" total()"/>

<input id="radiod1" type="radio" name="nroDia" value="1"  class="radio" onclick=" total()"/>
<input id="radiod2" type="radio" name="nroDia" value="2"  class="radio" onclick=" total()"/>

<p name="subtotalResumen">TOTAL: <input name="total1" id="total1" type="text" value="100"/></p> 
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 26/03/2010, 16:36
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: radiobotones dependientes para mostrar valor en un input text

Hola

Prueba así

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function total() {
  5. var elemArr = new Array();
  6. var total1 = document.getElementById("total1");
  7. var elemInput = document.getElementById('formulario').getElementsByTagName('label');
  8.     for(var i = 0; i < elemInput.length; i++){
  9.         var elem = elemInput[i].getElementsByTagName('input');
  10.         for(var j = 0; j < elem.length; j++){
  11.  
  12.             if(elem[j].checked){
  13.             elemArr.push(elem[j].value);
  14.             }
  15.         }
  16.     }
  17.  
  18. alert ("El arreglo es: " + elemArr);
  19. total1.value = parseInt(elemArr[0] * elemArr[1]);
  20. }
  21. </script>
  22. </head>
  23. <body>
  24. <form id="formulario">
  25. <label for="nroPag">
  26. <input id="nroPag[]" type="radio" name="nroPag[]" value="100" class="radio"/>
  27. <input id="nroPag[]" type="radio" name="nroPag[]" value="200" class="radio"/>
  28. <input id="nroPag[]" type="radio" name="nroPag[]" value="300" class="radio"/>
  29. </label>
  30. <label for="nroDia">
  31. <input id="nroDia[]" type="radio" name="nroDia[]" value="1"  class="radio"/>
  32. <input id="nroDia[]" type="radio" name="nroDia[]" value="2"  class="radio"/>
  33. </label>
  34. <button onclick="total();return false;" >Ver Datos</button>
  35. <p name="subtotalResumen">TOTAL: <input name="total1" id="total1" type="text" value="100"/></p>
  36. </form>
  37. </body>
  38. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 26/03/2010, 21:55
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 14 años, 10 meses
Puntos: 269
Respuesta: radiobotones dependientes para mostrar valor en un input text

Muchas gracias Adler, tu script funciona perfecto. Mas no puedo alterar el valor de los value de los input (<input id="radiop1" type="radio" name="nroPag" value="1" class="radio" onclick=" total()"/>) ya que a estos ya los estoy utilizando para una funcion que se ejecutara primero. (cosa que no avise en la consulta ) es decir, lo que tengo es:

<input id="radiop1" type="radio" name="nroPag" value="1" class="radio" onclick=" funcion1(); total()"/>

y funcion1() trabaja con los value, por lo que debería modificar el valor de los value de forma dinámica supongo. En otras palabras, el html (codigo fuente) no puede ser modificado.

Asimismo, modificando tu linea 19 ( total1.value = parseInt(elemArr[0] * elemArr[1]); ) y utilizando bien las matematicas calculo voy a lograr lo que ando buscando. Por.ej:
total1.value = parseInt(elemArr[0] * elemArr[1] * impuestoPorPagina );

Muchas gracias, analizaré bien tu ejemplo y veré como adaptarlo a mi necesidad en concreto.

Ah .. una consulta: ¿ Afecta en algo que cambie id="nroPag[]" por digamos id="nuevaId" ?, gracias

p/d: acabo de darme una vueltita por las faq de js y no se como agradecer tanta data, impresionante.

Última edición por cristian_cena; 27/03/2010 a las 01:56
  #4 (permalink)  
Antiguo 26/03/2010, 22:15
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: radiobotones dependientes para mostrar valor en un input text

ya que el suyo está solucionado, este tema es reciente y estoy igual... yo lo estoy probando así

(a mi me tiene que mostrar cada vez que elija un plato el menú seleccionado)

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Menú del día</title>
        <script type="text/javascript">
            function avisar(dish){
				var num_platos = document.forms[dish].plato.length;

				var marcados = document.getElementById("r" + dish);
				marcados.innerHTML = "";
				for(x = 0; x < num_platos; x++){
					if(document.forms[dish].plato[x].checked){
		
						var mostrar = "<p>" + document.forms[dish].toppingcheck[x].value + "</p>";				
						marcados.innerHTML = marcados.innerHTML + mostrar;
						
					}
				}
				
			}
			avisar("primerp");
			avisar("segundop");
			avisar("tercerp");
            
            
        </script>
    </head>
    <body>
    
    <h1>Menu Del día</h1>
    
        
        <h2>Primer Plato</h2>  
        <form name="primerp"> 
        	<input type="radio" name "plato" value "Gazpacho" onClick="avisar('primerp');" checked="checked" />  Gazpacho
        	<input type="radio" name "plato" value "Ensalada" onClick="avisar('primerp');" />  Ensalaa
        	<input type="radio" name "plato" value "Sopa" onClick="avisar('primerp');" />  Sopa
            </form>
            
             <h2>Primer Plato</h2>  
             <form name="segundop"> 
        	<input type="radio" name "plato" value "Atun" onClick="avisar('segundop');" checked="checked">  Atun
        	<input type="radio" name "plato" value "Lomo" onClick="avisar('segundop');" />  Lomo
        	<input type="radio" name "plato" value "pasta" onClick="avisar('segundop');" />  Pasta
            </form>
            
             <h2>Postre</h2>   
             <form name="tercerp">
        	<input type="radio" name "plato" value "h" onClick="avisar('tercerp');" checked="checked"/>  Helado
        	<input type="radio" name "plato" value "f" onClick="avisar('tercerp');" />  Fruta
        	<input type="radio" name "plato" value "s" onClick="avisar('tercerp');" />  Tarta
            </form>

        
        
     
     <div id="Resultao">
     		<h1>Menú Seleccionado</h1>
            <div id="rprimerp"></div>
            <div id="rsegundop"></div>
            <div id="rtercerp"></div>
     </div>
    </body>
</html>
-edit-

Así tampoco me hace ni caso...
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Menú del día</title>
        <script type="text/javascript">
            function avisar(dish){
				var platos = document.forms["f" + dish].plato;
				var num_platos = platos.length;
				var marcados = document.getElementById("r" + dish);
				marcados.innerHTML = "";
				for(var x = 0; x < num_platos; x++){
					if(platos[x].checked){
						alert(platos[x].checked);
		
						/*var mostrar = "<p>" + document.forms[dish].toppingcheck[x].value + "</p>";				
						marcados.innerHTML = marcados.innerHTML + mostrar;*/
						
					}
				}
				
			}
			avisar("primerp");
			avisar("segundop");
			avisar("tercerp");
            
            
        </script>
    </head>
    <body>
    
    <h1>Menu Del día</h1>
    
        
        <h2>Primer Plato</h2>  
        <form name="fprimerp"> 
        	<input type="radio" name "plato" value "Gazpacho" onClick="avisar('primerp');" checked="checked" />  Gazpacho
        	<input type="radio" name "plato" value "Ensalada" onClick="avisar('primerp');" />  Ensalaa
        	<input type="radio" name "plato" value "Sopa" onClick="avisar('primerp');" />  Sopa
            </form>
            
             <h2>Primer Plato</h2>  
             <form name="fsegundop"> 
        	<input type="radio" name "plato" value "Atun" onClick="avisar('segundop');" checked="checked">  Atun
        	<input type="radio" name "plato" value "Lomo" onClick="avisar('segundop');" />  Lomo
        	<input type="radio" name "plato" value "pasta" onClick="avisar('segundop');" />  Pasta
            </form>
            
             <h2>Postre</h2>   
             <form name="ftercerp">
        	<input type="radio" name "plato" value "h" onClick="avisar('tercerp');" checked="checked"/>  Helado
        	<input type="radio" name "plato" value "f" onClick="avisar('tercerp');" />  Fruta
        	<input type="radio" name "plato" value "s" onClick="avisar('tercerp');" />  Tarta
            </form>

        
        
     
     <div id="Resultao">
     		<h1>Menú Seleccionado</h1>
            <div id="rfprimerp"></div>
            <div id="rfsegundop"></div>
            <div id="rftercerp"></div>
     </div>
    </body>
</html>
EL caso es que in me inicializa la previsualización ni me la actualiza al cambiar de opción..... No lo entiendo; alguna pista?
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance

Última edición por Bam_Margera; 26/03/2010 a las 22:27
  #5 (permalink)  
Antiguo 27/03/2010, 15:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: radiobotones dependientes para mostrar valor en un input text

Hola

Cita:
Iniciado por cristian_cena Ver Mensaje
Ah .. una consulta: ¿ Afecta en algo que cambie id="nroPag[]" por digamos id="nuevaId" ?, gracias
No, siempre y cuando el for del label sea "nuevaId"

Bam_Margera, aunque el tema esté resuelto y expongas un tema que está relacionado, la próxima vez abre un nuevo tema

Prueba con esto

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function valores() {
  5. var comida = new Array();
  6. var primero = document.getElementById("rprimerp");
  7. var segundo = document.getElementById("rsegundop");
  8. var postre = document.getElementById("rtercerp");
  9. var elemLabel= document.getElementById('formulario').getElementsByTagName('label');
  10.     for(var i = 0; i < elemLabel.length; i++){
  11.  
  12.         var elemInput = elemLabel[i].getElementsByTagName('input');
  13.         for(var j = 0; j < elemInput.length; j++){
  14.             if (elemInput[j].checked) {
  15.                 comida.push(elemInput[j].value);
  16.             }
  17.         }
  18.     }
  19. primero.innerHTML = comida[0];
  20. segundo.innerHTML = comida[1];
  21. postre.innerHTML = comida[2];
  22. }
  23.  
  24.  
  25.  
  26. function init() {
  27. var comida = new Array();
  28. var primero = document.getElementById("rprimerp");
  29. var segundo = document.getElementById("rsegundop");
  30. var postre = document.getElementById("rtercerp");
  31. var elemLabel= document.getElementById('formulario').getElementsByTagName('label');
  32.     for(var i = 0; i < elemLabel.length; i++){
  33.  
  34. var elemInput = elemLabel[i].getElementsByTagName('input');
  35.         for(var j = 0; j < elemInput.length; j++){
  36.             if (elemInput[j].checked) {
  37.                 comida.push(elemInput[j].value);
  38.             }
  39.             elemInput[j].onclick = valores;
  40.         }
  41.     }
  42. primero.innerHTML = comida[0];
  43. segundo.innerHTML = comida[1];
  44. postre.innerHTML = comida[2];
  45. }
  46.  
  47. window.onload = function() {init()};
  48. </script>
  49. </head>
  50.     <body>
  51.    
  52.     <h1>Menu Del día</h1>
  53.    
  54.        
  55.         <h2>Primer Plato</h2>  
  56. <form id="formulario">
  57. <label for="primerp">
  58.             <input type="radio" name="primerp[]" id="primerp[]" value="Gazpacho" checked="checked" />  Gazpacho
  59.             <input type="radio" name="primerp[]" id="primerp[]" value="Ensalada" />  Ensalaa
  60.             <input type="radio" name="primerp[]" id="primerp[]" value="Sopa" />  Sopa
  61. </label>
  62.            
  63.              <h2>Primer Plato</h2>  
  64. <label for="segundop">
  65.             <input type="radio" name="segundop[]" id="segundop[]" value="Atun" checked="checked" />  Atun
  66.             <input type="radio" name="segundop[]" id="segundop[]" value="Lomo" />  Lomo
  67.             <input type="radio" name="segundop[]" id="segundop[]" value="pasta" />  Pasta
  68. </label>
  69.            
  70.              <h2>Postre</h2>  
  71. <label for="tercerp">
  72.             <input type="radio" name="tercerp[]" id="tercerp[]" value="h" checked="checked" />  Helado
  73.             <input type="radio" name="tercerp[]" id="tercerp[]" value="f" />  Fruta
  74.             <input type="radio" name="tercerp[]" id="tercerp[]" value="s" />  Tarta
  75. </label>
  76. </form>
  77.  
  78.        
  79.      <div id="Resultao">
  80.              <h1>Menú Seleccionado</h1>
  81.             <div id="rprimerp"></div>
  82.             <div id="rsegundop"></div>
  83.             <div id="rtercerp"></div>
  84.      </div>
  85.     </body>
  86. </html>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: dependientes, input, txt
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 10:04.