Foros del Web » Programando para Internet » Javascript »

Input enviar sin obligación de rellanar campos

Estas en el tema de Input enviar sin obligación de rellanar campos en el foro de Javascript en Foros del Web. Cita: <script> function margenbruto(){ var D = document.getElementById('IN').value; var E = document.getElementById('CD').value; var F = document.getElementById('MB'); F.value = ((parseFloat(D) - parseFloat(E))) } </script> </head> <body> ...
  #1 (permalink)  
Antiguo 16/02/2016, 06:59
bebodaulerio
Invitado
 
Mensajes: n/a
Puntos:
Input enviar sin obligación de rellanar campos

Cita:
<script>
function margenbruto(){
var D = document.getElementById('IN').value;
var E = document.getElementById('CD').value;
var F = document.getElementById('MB');
F.value = ((parseFloat(D) - parseFloat(E)))
}
</script>

</head>

<body>
<form>
Ingreso Neto ($):
<input type="number" id="IN" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">Costos Directos ($):
<input type="number" id="CD" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
<input type="button" onClick="margenbruto();" value="Resultado" style="background-color: border:1px; text-align: center;">
</p>
<p align="center">Margen Bruto ($):
<input id="MB"/>
</p>

</form>
En este caso Ingreso Neto - Costos Directo es = a Margen Bruto.
En caso de no tener costos directos es decir que sean 0, y no completar el formulario, ¿cómo hacer para que no salga NaN? Y la operación muestre el resultado igual. Es decir donde Ingreso Neto sería igual a Margen Bruto ya que nada lo resta.
  #2 (permalink)  
Antiguo 16/02/2016, 07:06
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Input enviar sin obligación de rellanar campos

Agrégale la etiqueta value="0" a cada input
  #3 (permalink)  
Antiguo 16/02/2016, 07:14
bebodaulerio
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Input enviar sin obligación de rellanar campos

Disculpa la ignorancia, estoy volviendo a arrancar con esto y recordando de a poco.
¿Lo que decís es agregarle la etiqueta para que ya aparezca con un 0 por defecto? No creo que sea la solución que ando buscando por un tema vistoso, de elegancia.
  #4 (permalink)  
Antiguo 16/02/2016, 07:35
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Input enviar sin obligación de rellanar campos

No creo que agregar un 0 por defecto agregue o quite elegancia.


Agrega entonces esta validación a tu js

Código Javascript:
Ver original
  1. E = E==""?0:E
  #5 (permalink)  
Antiguo 16/02/2016, 08:17
bebodaulerio
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Input enviar sin obligación de rellanar campos

Y eso que haría? Disculpa que no entiendo, y dónde lo agrego?
Te cuento que lo que estoy haciendo es para una tesis para recibirme de Licenciado en Administración, y encima yo soy un poco hincha pelotas, habiendo otras soluciones preferiría no poner el 0.
  #6 (permalink)  
Antiguo 16/02/2016, 08:24
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Input enviar sin obligación de rellanar campos

Descuida, acá estamos para ayudar:

Esta sentencia

Código Javascript:
Ver original
  1. E = E==""?0:E

Es igual a escribir

Código Javascript:
Ver original
  1. IF(E==""){
  2. E=0;
  3. }

Es decir, cuando tu no ingresas un valor en CD el campo vendrá con valor vació (""), por lo que en el JS deberás decirle que ese vacio tiene que tomarlo como un 0. Por lo que tu código quedará

Código Javascript:
Ver original
  1. <script>
  2. function margenbruto(){
  3. var D = document.getElementById('IN').value;
  4. var E = document.getElementById('CD').value;
  5. var F = document.getElementById('MB');
  6. E = E==""?0:E
  7. F.value = ((parseFloat(D) - parseFloat(E)))
  8. }
  9. </script>


En palabras simples el " E = E==""?0:E " quiere decir que si E es vacio tome el valor de 0, si no que tome el valor que trae.
  #7 (permalink)  
Antiguo 16/02/2016, 08:36
bebodaulerio
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Input enviar sin obligación de rellanar campos

Para tí una pavada, y no sabes el aventón que me has dado.


Y que se te ocurre para cuando la variable es más de 1. Es decir tanto E, como otras variables deben funcionar de igual manera.

Cita:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>

<script>
function ingresoneto(){
var A = document.getElementById('IB').value;
var B = document.getElementById('GC').value;
var D = document.getElementById('IN');
D.value = ((parseFloat(A) - parseFloat(B)));}

function margenbruto(){
var D = document.getElementById('IN').value;
var E = document.getElementById('CD').value;
var F = document.getElementById('MB');
F.value = ((parseFloat(D) - parseFloat(E)))
}

function resultadooperativo(){
var F = document.getElementById('MB').value;
var G = document.getElementById('GA').value;
var H = document.getElementById('GE').value;
var I = document.getElementById('RO');
I.value = ((parseFloat(F) - parseFloat(G) - parseFloat(H)))
}

function resultadoporproduccion(){
var I = document.getElementById('RO').value;
var J = document.getElementById('AI').value;
var K = document.getElementById('RPP');
K.value = ((parseFloat(I) - parseFloat(J)))
}
</script>

</head>

<body>
<form>
<p align="center">
Ingreso Bruto ($):
<input type="number" id="IB" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
Gastos de Comercialización ($):
<input type="number" id="GC" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
<input type="button" onClick="ingresoneto();" value="Calcule IN" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">

Ingreso Neto ($):
<input id="IN" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
Costos Directos ($):
<input type="number" id="CD" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
<input type="button" onClick="margenbruto();" value="Calcule MB" style="background-color: border:1px; text-align: center;">
</p>
<p align="center">
Margen Bruto ($):
<input id="MB" style="background-color: border:1px; text-align: center;"/>
</p>

<p align="center">
Gastos Administrativos ($):
<input type="number" id="GA" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
Gastos de Estructura ($):
<input type="number" id="GE" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
<input type="button" onClick="resultadooperativo();" value="Calcule RO" style="background-color: border:1px; text-align: center;">
</p>
<p align="center">
Resultado Operativo ($):
<input id="RO" style="background-color: border:1px; text-align: center;"/>
</p>

<p align="center">
Amortizaciones indirectas ($):
<input type="number" id="AI" style="background-color: border:1px; text-align: center;"/>
</p>
<p align="center">
<input type="button" onClick="resultadoporproduccion();" value="Calcule RO" style="background-color: border:1px; text-align: center;">
</p>
<p align="center">
Resultado por Producción ($):
<input id="RPP" style="background-color: border:1px; text-align: center;"/>
</p>
</form>
</body>
En este caso B, E, G, H y J deberían funcionar de igual manera. Sé que repitiéndolo funciona. Pero se te ocurre algo mejor y más simple? En función de que como este módulo tengo que hacer tantos otros y ver como lo resuelvo mejor para no enloquecerme repitiéndolo a cada rato.

¡Gracias!

Etiquetas: campos, formulario, input
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 13:27.