Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 01:25
yamatadvd2000
 
Fecha de Ingreso: febrero-2010
Mensajes: 49
Antigüedad: 14 años, 9 meses
Puntos: 1
Declaracion de variables javascript

Hola que tal.

El problema es el siguiente, no entiendo que esté mal.
(combino javascript con jquery)

Sé que una variable cuando es declarada fuera de una funcion es global, para que una variable sea global declarada dentro de una funcion, debe hacerse sin "var".

En mi codigo, tengo una funcion que es ejecutada dentro de otra funcion.
La segunda se ejecuta al dar click en un boton. esta, debe evaluar si una variable ("fal") es mayor a cero. Esta variable, es declarada globalmente fuera de ambas funciones, por defecto en 0.

Al presionar el boton, la primer funcion es ejecutada, evalua los campos, si la variable es de valor 0 ejecuta a la segunda funcion y comienza un contador, el cual hace que dicha variable cambie de valor (mayor a 0).

Al pulsar por segunda vez el boton, la primer funcion deberia negar la ejecucion de la segunda, pero no es así.

Si no declarara la variable de manera global, simplemente me tira el error que la variable no ha sido declarada y nada funciona.

El codigo es el siguiente:
vriable:

Código PHP:
var fal=0
Segunda funcion:
Código PHP:

 
function faltan(fal){ 
 
fal fal-1000;
if (
fal 0){ 
var 
segundos Math.round(fal/1000); 
var 
minutos Math.floor(segundos/60); 
var 
segundos_s segundos%60
var 
horas Math.floor(minutos/60); 
var 
minutos_s minutos%60
var 
dias Math.floor(horas/24); 
var 
horas_s horas%24
$(
".error").html('Para otro espera<br>'+minutos_s+":"+segundos_s);
setTimeout("faltan("+fal+")",1000); 


else { 
$(
".error").css('background-color''#00ff00');
$(
".error").html('P&uacute;edes enviar un saludo');
return 
true


Primer funcion

Código PHP:
$("#peti").live('click', function(){
     
re=/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$/
      var 
name = $("#n").val();
        var 
email = $("#e").val();
      var 
com = $("#c").val();
      var 
= $("#p").val();
      var 
= $("#c").val().length;
      if(
re.exec(email)){
      if (
name == "" || email == "" || com == ""){
        $(
".error").css('background-color'e_color);
        $(
".error").html('Un canpo est&aacute; vacio');      
      }else{
//vacios
      
if (n>=50){
          if (
fal <= 0){
      $(
'#error').load('mail.php?n='+name+'&e='+email+'&c='+com+'&p='+p+'');
      $(
".error").css('background-color'e_color);
      
faltan(180000);
          }else{
//faltan
          
alert(fal);
          $(
".error").css('border''1px solid #ffffff');
          }
      }
//caracteres min
      
}
      }else{
//evalua
      
$(".error").css('background-color'e_color);
      $(
".error").html('E-mail Invalido');
      }
      
     });