Foros del Web » Programando para Internet » Javascript »

Saber si existe un objeto

Estas en el tema de Saber si existe un objeto en el foro de Javascript en Foros del Web. Hola, necesito saber si existe un objeto en mi página web. Concretamente, un formulario (o un text de dicho form) Ejemplo: if ( no existe ...
  #1 (permalink)  
Antiguo 29/03/2004, 13:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Saber si existe un objeto

Hola, necesito saber si existe un objeto en mi página web. Concretamente, un formulario (o un text de dicho form)

Ejemplo:

if (no existe document.formuPEPE){
alert('el form desapareció!')
}


Intenté preguntando si el value de un text que no existe es nulo, pero lógicamente me respondió con un cartelote que reza: "se esperaba un objeto"


Se puede de otra manera?
  #2 (permalink)  
Antiguo 29/03/2004, 15:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola dazu:

Prueba con esto:

if (!document.formuPEPE){
alert('el form desapareció!')
}

Espero que te sirva.

Saludos
  #3 (permalink)  
Antiguo 29/03/2004, 15:26
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
SOLUCION

Prueba este codigo, el try catch no lo conoce mucha gente, pero sirve para evitar errores en el codigo, excepciones como el se esperaba un objeto. Puedes sustituir el alert por lo que quieras y el error ocurrira transparentemente:

Código PHP:
<form name="fr1">
    <
input name="txt1">
</
form>
<
form name="fr2">
    <
input name="txt3">
</
form>

<
script language="javascript">
<!--

try {
    
cont1=document.fr1.txt1.value;
    
cont2=document.fr2.txt1.value;
} catch(
e) {
    
alert(e.description);
}

//-->
</script> 


Espero que te sirva.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 29/03/2004, 18:04
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Hola y gracias a los dos.

Les cuento, usé ambos ejemplos y funcionan sólo cuando el script está fuera de una function(), no así cuando son llamados desde una función.

Estos funcionan por si solos al cargar la página:

Código:
<script language="javascript">
if (!document.formuPEPE){
alert('el form desapareció!')
}
</script>

Código:
<script language="javascript">
<!--

try {
    cont1=document.fr1.txt1.value;
    cont2=document.fr2.txt1.value;
} catch(e) {
    alert(e.description);
}

//-->
</script>

Pero estos...

Código:
<script language="javascript">
function NoExiste()
if (!document.formuPEPE){
alert('el form desapareció!')
}
}

function NoExiste2()
try {
    cont1=document.fr1.txt1.value;
    cont2=document.fr2.txt1.value;
} catch(e) {
    alert(e.description);
}
}
</script>

<input type="button" name="boton" value="No existe" onClick="NoExiste()">
<input type="button" name="boton" value="No existe 2" onClick="NoExiste2()">
... al estar dentro de una función y ser llamados desde un onClick, dan el mismo error: "Se esperaba un objeto"

por qué pasa eso?
  #5 (permalink)  
Antiguo 29/03/2004, 18:37
 
Fecha de Ingreso: febrero-2001
Mensajes: 1.374
Antigüedad: 23 años, 2 meses
Puntos: 11
hola diego

Código PHP:
<script language="javascript">

function 
NoExisteForm()
{
if (! 
document.forms['formulario']) {
    
alert('no existe el formulario');
    return 
false;
}
else {
    
alert('el formulario existe');
    return 
true;
}
}

function 
NoExisteCampo()
{
if (! 
document.forms['formulario'].elements['boton1']) {
    
alert('no exsiste el campo');
    return 
false;

else {
    
alert('el campo existe');
    return 
true;
}
}

</script>

<form name="formulario">
<input type="button" name="boton1" value="No existe Formulario" onclick="NoExisteForm()">
<input type="button" name="boton2" value="No existe Campo" onclick="NoExisteCampo()">
</form> 
saludos!
  #6 (permalink)  
Antiguo 29/03/2004, 20:45
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
o_O!!!

Chas gracias, Tuk. Funcionó espetacular!

Ahora, me quitan la duda?

Será que al hacer referencia explícita a un objeto inexistente da error mientras que si hacemos referencia a un posible objeto dentro de una colección genérica, y este en particular no existe, si funciona?

Y si es así como digo (aunque seguramente estaría mejor dicho con otras palabras), por qué los ejemplos de caricatos y de derkenuke funcionaban por si solos y no si estaban dentro de una función?

Pero qué cosa complicada el JS, muchacho
  #7 (permalink)  
Antiguo 30/03/2004, 06:20
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Mmm, a mi dentro de una funcion sí me funciona, cuando ejecuto el evento onclick en un boton...

Por cierto en el ejemplo:


Cita:
Pero estos...


Código PHP:
<script language="javascript">
function 
NoExiste()
if (!
document.formuPEPE){
alert('el form desapareció!')
}
}

function 
NoExiste2()
try {
    
cont1=document.fr1.txt1.value;
    
cont2=document.fr2.txt1.value;
} catch(
e) {
    
alert(e.description);
}
}
</script>

<input type="button" name="boton" value="No existe" onClick="NoExiste()">
<input type="button" name="boton" value="No existe 2" onClick="NoExiste2()"> 
Le faltan las llaves de apertura de funcion, pero por lo demas a mi me ha dado sin errores.


Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.

Última edición por derkenuke; 30/03/2004 a las 06:22
  #8 (permalink)  
Antiguo 30/03/2004, 10:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Cita:
Le faltan las llaves de apertura de funcion, pero por lo demas a mi me ha dado sin errores

Es cierto, se ve que me las olvidé cuando copipastié al hacer el mensaje (había eliminado el archivo HTML que usé para probar luego de la frustración). Pero igualmente en las pruebas que hice en mi casa me decía que se esperaba un objeto (y si estaban las llaves de apertura).. y en el trabajo no me lo dice

Así que rectifico: Gracias a los 3, todas funcionan como necesito
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 16:08.