Foros del Web » Programando para Internet » Javascript »

Si mi resultado es <0 el valor sea =0

Estas en el tema de Si mi resultado es <0 el valor sea =0 en el foro de Javascript en Foros del Web. Hola a todos tengo es siguiente script function resta() { document.forms[0].pendiente.value=eval(document.forms[0].total.value)- eval(document.forms[0].recibi.value); donde oviamente en mi formulario tengo un inptu total y uno recibi y ...
  #1 (permalink)  
Antiguo 04/11/2013, 12:55
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Si mi resultado es <0 el valor sea =0

Hola a todos tengo es siguiente script
function resta()
{ document.forms[0].pendiente.value=eval(document.forms[0].total.value)- eval(document.forms[0].recibi.value);


donde oviamente en mi formulario tengo un inptu total

y uno recibi

y para mostrar el resultado <input type="text" name="pendiente" id="id" value="" size="26" onclick= "resta()"


Todo funciona bien pero cuando mi total es menos que el recibe obtengo un numero negativo como resultado ejemplo:
1000-5000=-4000


quiero hacer algo para que si el numero es negativo automaticamente se ponga 0 como resultado....

lo intente agregando esto
if (pendiente<0)
{
document.forms[0].pendiente.value=0;
} pero no he logrado solucionarlo


Gracias por su ayuda
  #2 (permalink)  
Antiguo 04/11/2013, 12:59
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Si mi resultado es <0 el valor sea =0

declare una función (programación estructurada)

además no hace falta que use eval()
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 04/11/2013, 13:09
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Si mi resultado es <0 el valor sea =0

tienes razon el eval no es necesario gracias por el dato :)
Código HTML:
<script type="text/javascript">

function resta()
{ document.forms[0].pendiente.value=(document.forms[0].total.value)- (document.forms[0].recibi.value);

Aqui intento checar si es un numero negativo el valor automaticamente cambie a 0
if (pendiente<0)

{
	
  }
 
}
 
</script> 
  #4 (permalink)  
Antiguo 04/11/2013, 14:04
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Si mi resultado es <0 el valor sea =0

Usa el ID para capturarl elementos. Jamás metas javascript en elementos HTML, al igual que nadie en su sano juicio mete estilos en ellos mediante el viejo y obsoleto atributo "style" (salvo muy contadas ocasiones).

Código Javascript:
Ver original
  1. window.onload=function(){
  2. var RESTADOR={
  3.   input1: document.getElementById("a"),
  4.   input2: document.getElementById("b"),
  5.   output: document.getElementById("c")
  6. };
  7.  
  8. RESTADOR.output.onclick=function(){
  9.  var a=(isNaN(RESTADOR.input1.value))?0:parseFloat(RESTADOR.input1.value);
  10.  var b=(isNaN(RESTADOR.input2.value))?0:parseFloat(RESTADOR.input2.value);
  11.  RESTADOR.output.value=Math.max(0,a-b);
  12. };
  13. }

Última edición por marlanga; 04/11/2013 a las 14:11
  #5 (permalink)  
Antiguo 04/11/2013, 18:33
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Si mi resultado es <0 el valor sea =0

Gracias amigo no estoy muy familiarizada con java.. asi que cambie lo que crei conveniente jejeje
lo de input por los nombres de mis inputs y las letras a, b, c por los id ... pero no consigo obtener resultado :(
  #6 (permalink)  
Antiguo 04/11/2013, 18:53
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Si mi resultado es <0 el valor sea =0

Código HTML:
<script>
window.onload=function(){
var RESTADOR={
  total (input): document.getElementById("a"),
  recibi (input): document.getElementById("b"),
  output: document.getElementById("cambio") aca me quedo la duda
};
 
RESTADOR.output.onclick=function(){
 var a=(isNaN(RESTADOR.total.value))?0:parseFloat(RESTADOR.total.value);(input name)
 var b=(isNaN(RESTADOR.recibi.value))?0:parseFloat(RESTADOR.recibi.value);(inpu namet)
 RESTADOR.output.value=Math.max(0,a-b);
};
}
 
</script> 
  #7 (permalink)  
Antiguo 04/11/2013, 19:42
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Respuesta: Si mi resultado es <0 el valor sea =0

Hola

Prueba esto

Código Javascript:
Ver original
  1. var menor= -1000;
  2.  
  3. if(menor<0){ alert('menor');}

El problema de tu codigo es que operas con los campos del formulario mi consejo.
Y luego empleas "pediente" como una variable normal cuando esta no existe en tu js.

De esta forma si deberia ir:
Código Javascript:
Ver original
  1. if (document.forms[0].pendiente.value<0)
  2. {
  3. document.forms[0].pendiente.value=0;
  4. }

Pero deberias siempre operar asi: capturas los datos variables js y luego la devuelves al form si te hace falta.

Código Javascript:
Ver original
  1. var pendiente=document.forms[0].pendiente.value;
  2. var total =document.forms[0].total.value;
  3. var recibi =document.forms[0].recibi.value;
  4.  
  5. pendiente=total-recibi;
  #8 (permalink)  
Antiguo 04/11/2013, 19:50
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Si mi resultado es <0 el valor sea =0

Hola nevergame intento pasar el codigo como me sugieres
Código HTML:
<script>
function resta()
{
var pendiente=document.forms[0].pendiente.value;
var total =document.forms[0].total.value;
var recibi =document.forms[0].recibi.value;
 
pendiente=total-recibi;
}
</script> 

tengop una duda para mostrar el resultado en pendiente debo usar output?????

Última edición por Briss; 05/11/2013 a las 10:33
  #9 (permalink)  
Antiguo 05/11/2013, 10:33
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Si mi resultado es <0 el valor sea =0

Hola nevergame intento pasar el codigo como me sugieres
Código HTML:
<script>
function resta()
{
var pendiente=document.forms[0].pendiente.value;
var total =document.forms[0].total.value;
var recibi =document.forms[0].recibi.value;
 
pendiente=total-recibi;
}
</script> 

tengop una duda para mostrar el resultado en pendiente debo usar output?????

Etiquetas: formulario, funcion, input, resultado, 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 21:39.