Foros del Web » Programando para Internet » Javascript »

Variables en javascript

Estas en el tema de Variables en javascript en el foro de Javascript en Foros del Web. Buen día compañeros del foro. Tengo un problema de variables globales y locales en javascript. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function valida_cedula ( ...
  #1 (permalink)  
Antiguo 18/05/2011, 08:29
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 2 meses
Puntos: 9
Información Variables en javascript

Buen día compañeros del foro.
Tengo un problema de variables globales y locales en javascript.
Código Javascript:
Ver original
  1. function valida_cedula() { 
  2.         $(function() { 
  3.             $('#c').remove();
  4.             var cedula = $('#cedula').val();
  5.             var min = 1000000;
  6.             var max = 99999999;
  7.             if (cedula!="") {
  8.                 if ((!isNaN(cedula)) && (cedula>=min) && (cedula<=max)) {
  9.                     var html2 = $.ajax ({
  10.                             type: "GET", url: "jquery/comprobar_usuario.php", data: "ci=" + cedula, async: false
  11.                         }).responseText;
  12.                        
  13.                         if (html2 == "1") {
  14.                             $('#mcedula').append('<span id="c">Cedula ya registrada</span>');
  15.                         } else {
  16.                             $('#mcedula').append('<span id="c">Correcto</span>');
  17.                             cedul = 1;
  18.                            
  19.                         }
  20.                 } else {
  21.                     $('#mcedula').append('<span id="c">Formato no Valido</span>');
  22.                 }
  23.             }
  24.         });
  25.     }

la funcion trabaja de forma perfecta, el problema está en que cuando quiero poner una condición de acuerdo al valor que me cedul entonces no me lo lee.

la condición la pongo así:
Código Javascript:
Ver original
  1. valida_cedula();
  2.         if (cedul==1)
  3.             $('#guardar').fadeIn('fast');
  4.         else
  5.             $('#guardar').fadeOut('fast');

Es decir, cuando cedul que está dentro de la función y definida como varibale global sea igual a 1. entonces me aparece el boón de guardar, pero no lo ejecuta.

¿Como puedo leer desde afuera la varibale que tengo dentro de una función?

Gracias de antemano por su atención.
__________________
La educación y la cortesía abren todas las puertas.
  #2 (permalink)  
Antiguo 18/05/2011, 10:06
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Variables en javascript

JavaScript es lexical scoped, con lo cual la visibilidad de las variables esta atada al contexto en el que son definidas.

Si vos definís una variable dentro de una función no vas a poder accederla desde afuera de la misma a menos que generes dicho comportamiento (devolverla en el return, asignarla a una variable global o implementar algun tipo de getter).

Por lo general, si llegas a necesitar lo que estás pidiendo, el problema radica en un mal planteo de la solución.

Saludos.
__________________
blog | @aijoona
  #3 (permalink)  
Antiguo 18/05/2011, 20:14
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: Variables en javascript

Hola Aijoona, pues si, ya lo solucioné... la cuestión estaba bien, pero el problema era que no estaba llamando a la función final, igualmente muchas gracias por la pronta respuesta :)
__________________
La educación y la cortesía abren todas las puertas.

Etiquetas: variables
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:32.