Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/07/2011, 03:14
dvdaya
 
Fecha de Ingreso: enero-2005
Mensajes: 66
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta Funcion dentro de otra funcion

Hola a todos!
tengo una finción dentro de otra que pierde el valor.
Se trata de un formulario en el que al cambiar el valor de un campo ejecuta la función valida y al final lanza el formulario actualizando ese campo.
El caso es que sólo se me actualiza el último campo del formulario, no el que ha cambiado el valor.
El codigo utilizado es el siguiente:
Código HTML:
 <td width="110" align="center" bgcolor="#FFF2FF">
<script language="javascript"> 
<!--
function valida(min,cantidad) {
if (cantidad<min) { 
 alert("Su puja debe ser mayor que el precio de salida: "+min +"€") ;  
    } else {
                  if (cantidad % 5 != 0){
 	  alert("Las pujas deben acabar en 0 ó 5") ; 
                              } else { return true;}}
}
-->
</script> 
 <input name="cantidad" type="text" id="cantidad" onChange="if (valida(<?php echo $v['precio'] ?>,a<?php echo $v['identificador'] ?>.cantidad.value)==true){alert("hola");}"  value="<?php echo number_format($result,2) ?>" size="8">

 <input name="id" type="hidden" id="id"  value="<?php echo $v['id'] ?>"></td> 
Probé a hacerlo con las dos funciones dentro del Onchange pero me lanza simepre el submit. No consigo que pare si el valor introducido en el campo cumple alguna de las condiciones anteriores. lo intenté con break, pero nada!. El código es este:

Código HTML:
 <td width="110" align="center" bgcolor="#FFF2FF">
<script language="javascript"> 
<!--
function valida(min,cantidad) {
if (cantidad<min) { 
 alert("Su puja debe ser mayor que el precio de salida: "+min +"€") ; break; 
    } else {
                  if (cantidad % 5 != 0){
 	  alert("Las pujas deben acabar en 0 ó 5") ; break;
                              } 
}
-->
</script> 
 <input name="cantidad" type="text" id="cantidad" onChange="document.a<?php echo $v['identificador'] ?>.submit(valida(<?php echo $v['precio'] ?>,a<?php echo $v['identificador'] ?>.cantidad.value))"  value="<?php echo number_format($result,2) ?>" size="8">

 <input name="id" type="hidden" id="id"  value="<?php echo $v['id'] ?>"></td> 
Así que podría resumirlo en como evitar que una función que está dentro de otra pare:
p. ej: funcion1 (funcion2(valor)) --> si funcion2 = false ; que funcion1 no se ejecute

Gracias por la ayuda de antemano.
Un saludo,
dvdaya

Última edición por dvdaya; 20/07/2011 a las 03:44