Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Complementar esta funcion

Estas en el tema de Complementar esta funcion en el foro de Javascript en Foros del Web. Cita: Iniciado por Briss Tengo este formulario dos radios para marcar descuento o no (aca quisiera que me marcara automaticamente No y porcentajedes pusiera 0... ...
  #1 (permalink)  
Antiguo 24/02/2014, 19:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Complementar esta funcion

Cita:
Iniciado por Briss Ver Mensaje
Tengo este formulario dos radios para marcar descuento o no (aca quisiera que me marcara automaticamente No y porcentajedes pusiera 0... cambie mi código porque solo funcionaba una vez ... ahora funciona bien osea si cambio mi descuento hace las operaciones ... pero ahora no se como meter que mi radio no ponga 0 en porcentajedesc.... y mi radio si obvio haria las operaciones
Código HTML:
<form name="f1">
<input type="radio" name="promo"  id="promo"  value="si" >Si
   <input type="radio" name="promo"  id="promo"  value="no" checked="checked">No
  <p>Descuento:
  <input type="text" name="porcentajedesc"  value="0" size="2" onblur="descuento(1)"/> <br>
  total: <br>
   <input type="text" name="totalapagar"  value="200" size="2"  onblur="descuento(1)"/>
  <br>
  precio a pagar:
  <br>
  <input type="text" name="totalpago" id="totalpago" value="" size="2" onblur="descuento(1)" />
<script language="javascript"> 
function descuento(_v) { 
  with (document.forms["f1"])
  {
    var totalResult=0;
    if(_v==1)
	{
    totalResult = Number( totalapagar.value ) * Number( porcentajedesc.value ); 
    total=(totalResult)/100;
    pagofinal=Number( totalapagar.value )-total;

      totalpago.value = roundTo(pagofinal);
	}
   
  }
} 

function roundTo(num){ 
  if( isNaN( num ) )
  { 
    num = 0; 
  } 

  return num; 
} 



</script>
</form>
</body>
</html> 

Última edición por Briss; 24/02/2014 a las 23:57 Razón: codigo
  #2 (permalink)  
Antiguo 25/02/2014, 11:22
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: Complementar esta funcion

Tómate algunos segundos para escribir, completa las palabras y dale coherencia a la oración. De lo contrario hay que andar adivinando.
En base a lo que tenías:
Código CSS:
Ver original
  1. <style type="text/css">
  2.     #porcentajedesc{width: 30px}
  3. </style>
Código Javascript:
Ver original
  1. function descuento() {
  2.     var desc, totalapagar, porcentajedesc, total, pagofinal;
  3.     var totalpago;
  4.     // Para 2 elementos, más --> bucle
  5.     if (document.f1.promo1.checked)
  6.       desc = document.f1.promo1.value;
  7.     if (document.f1.promo2.checked)
  8.       desc = document.f1.promo2.value;
  9.  
  10.     with (document.forms["f1"]) {
  11.       // var totalResult = 0;
  12.       if (desc === "si") {
  13.         total = (Number(totalapagar.value) * Number(porcentajedesc.value)) / 100;
  14.         //total = (totalResult) / 100;
  15.         pagofinal = Number(totalapagar.value) - total;
  16.         totalpago.value = roundTo(pagofinal);
  17.         //totalpago.value = pagofinal;
  18.       } else {
  19.         pagofinal = Number(totalapagar.value);
  20.         totalpago.value = roundTo(pagofinal);
  21.       }
  22.     }
  23.   }
  24.   function roundTo(num) {
  25.     if (isNaN(num)) {
  26.       num = 0;
  27.     }
  28.     return num;
  29.   }
  30.   //
  31.   window.onload = function() {
  32.     descuento();
  33.     document.addEventListener('change', function(e) {
  34.       //e.preventDefault();
  35.       descuento();
  36.     });
  37.   };
Código HTML:
Ver original
  1. <form name="f1">
  2.       <input type="radio" name="promo"  id="promo1"  value="si" >Si
  3.       <input type="radio" name="promo"  id="promo2"  value="no" checked="checked">No
  4.       <p>Descuento:
  5.         <input type="number" min="0" id="porcentajedesc" name="porcentajedesc" value="0" >        
  6.         <br>
  7.         Total: <br>
  8.         <input type="text" name="totalapagar"  value="200" size="3" />
  9.         <br>
  10.         Precio a pagar:
  11.         <br>
  12.         <input type="text" name="totalpago" id="totalpago" value="" size="10" />
  13.     </form>

Última edición por bathorz; 25/02/2014 a las 11:30
  #3 (permalink)  
Antiguo 25/02/2014, 11:38
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Complementar esta funcion

Cita:
Iniciado por Briss Ver Mensaje
Tengo este formulario dos radios para marcar descuento o no (aca quisiera que me marcara automaticamente No y descuento pusiera 0... cambie mi código porque solo funcionaba una vez ... ahora funciona bien osea si cambio mi descuento hace las operaciones antes solo lo hacia una vez... pero ahora no se como meter que mi radio no ponga 0 en porcentajedesc.... y mi radio si obvio haria las operaciones
Código HTML:
<form name="f1">
<input type="radio" name="promo"  id="promo"  value="si" >Si
   <input type="radio" name="promo"  id="promo"  value="no" checked="checked">No
  <p>Descuento:
  <input type="text" name="porcentajedesc"  value="0" size="2" onblur="descuento(1)"/> <br>
  total: <br>
   <input type="text" name="totalapagar"  value="200" size="2"  onblur="descuento(1)"/>
  <br>
  precio a pagar:
  <br>
  <input type="text" name="totalpago" id="totalpago" value="" size="2" onblur="descuento(1)" />
<script language="javascript"> 
function descuento(_v) { 
  with (document.forms["f1"])
  {
    var totalResult=0;
    if(_v==1)
	{
    totalResult = Number( totalapagar.value ) * Number( porcentajedesc.value ); 
    total=(totalResult)/100;
    pagofinal=Number( totalapagar.value )-total;

      totalpago.value = roundTo(pagofinal);
	}
   
  }
} 

function roundTo(num){ 
  if( isNaN( num ) )
  { 
    num = 0; 
  } 

  return num; 
} 



</script>
</form>
</body>
</html> 
Gracias

Etiquetas: formulario, funcion, html, input, php, valor
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 18:33.