Foros del Web » Programando para Internet » Javascript »

No me evalua el if

Estas en el tema de No me evalua el if en el foro de Javascript en Foros del Web. Muy buena a todos. Una pregunta que ya me tiene negro...... En un formulario tengo esto : <form action=javascript : Cantidad_Comprar() method=post name=frmCantidad class=form id=frmCantidad> ...
  #1 (permalink)  
Antiguo 19/09/2005, 12:37
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
No me evalua el if

Muy buena a todos.

Una pregunta que ya me tiene negro......

En un formulario tengo esto :

<form action=javascript:Cantidad_Comprar() method=post name=frmCantidad class=form id=frmCantidad>
<input name='txt_cantidad' type='text' class='caja' id='txt_cantidad' style='text-align:center' onKeypress=Validar_Numeros() value='1' size='4' maxlength='2' >
<input type='submit' name='btn_enviar' value='Enviar' class='boton'>
</form>

Y en una pagina JS. Tengo esto


//************************************************** ******
function Cantidad_Comprar()
{
with(document.frmCantidad)
{
if (txt_cantidad.value > 10)
{ alert ('Solodatos menores a 10');
txt_cantidad.focus();
}
else
{
action="Ventas/formulario.php";
submit();
}

}
}

El problema es el siguiente:

Cuando ingreso un numero por ejemplo 9 u 12 no me evalua el if por lo tanto no me hace nada.


Que es lo que estara pasando o en que me estoy equivocando, o que me falta
......


Gracias
  #2 (permalink)  
Antiguo 19/09/2005, 12:59
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años
Puntos: 2
ten en cuenta que las condiciones necesitan 2 caracteres, es decir >> en lugar de > o en lugar de > 10 pone >= 10

y prueba con document.nombre_form.txt_cantidad.value en lugar de txt_cantidad.value
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 19/09/2005, 13:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
poco ortodoxo, o por lo menos no había visto ese estilo de envio de formulario. Prueba con un cast al contenido del control (parseInt) o con esta modificación:

Código:
<script>
function Cantidad_Comprar(){
with(document.frmCantidad){
  if (parseInt(txt_cantidad.value) > 10){ 
     alert ('Solodatos menores a 10');
     txt_cantidad.focus();
  }else{
     submit();
  }
 }
}
</script>

<form action="Ventas/formulario.php" method=post name=frmCantidad class=form id=frmCantidad>
<input name='txt_cantidad' type='text' class='caja' id='txt_cantidad' style='text-align:center' onKeypress=Validar_Numeros() value='1' size='4' maxlength='2' >
<input type='button' value='Enviar' class='boton' onclick="Cantidad_Comprar();">
</form>
Saludos
  #4 (permalink)  
Antiguo 19/09/2005, 13:09
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Cita:
Iniciado por FuLaNo_
ten en cuenta que las condiciones necesitan 2 caracteres, es decir >> en lugar de > o en lugar de > 10 pone >= 10
¡a caray! ¿y eso de donde lo sacaste?, nunca he tenido problemas con menor (<) que o mayor que (>) en javascript.
  #5 (permalink)  
Antiguo 19/09/2005, 13:28
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Me persiste el problema ..... yo ne se que hacer ya!!!!!!!!!!!

Haber si me dan otra mano por alli.
  #6 (permalink)  
Antiguo 19/09/2005, 13:30
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 7 meses
Puntos: 1
Me olvidaba.

Me sale error en la pagina en el navegador en la parte inferior derecha.

Gracias
  #7 (permalink)  
Antiguo 19/09/2005, 13:45
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 21 años
Puntos: 2
Tengo entendido que, si bien muchas veces funciona igual, la manera correcta de usar los operadores es: >= == >> << != ===, no en javascript, sino en todo lenguaje de programación.
__________________
I Love Programming...
  #8 (permalink)  
Antiguo 20/09/2005, 12:38
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Yo creo que > es correcto, sólo es doble para el igual.
1) El fallo puede ser porque el contenido de la caja de texto es una cadena, no un número; conviértelo a número antes de comparalo (solución ya sugerida por Myakire)

2) O bien no te está identificando el formulario; usa
with(document.forms.frmCantidad)
o bien
with(document.forms["frmCantidad"])

3) Averigua algo más poniendo
alert(txt_cantidad.value)

4) Por último, si en lugar de IE usas Mozilla o Firefox, se puede ver cuál el error en la "consola de javascript", y te ayudará a ver lo que falla.
__________________
Angel :cool:
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 14:48.