Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
Cómo verificar si los datos devueltos por ajax como json son objetos vacíos o no

Configuré este script para verificar si la dirección de correo electrónico existe en la base de datos o no:

 function checkemail(){ var e = document.getElementById("email").value; if(e != ""){ document.getElementById("emailstatus").innerHTML = 'checking ...'; $.ajax({ type:'get', url:'{!! URL::to('checkEmailExists') !!}', data:{'email':e}, success:function(data){ // console.log(data); if(Object.keys(data).length === 0) { document.getElementById("emailstatus").style.color = "red"; document.getElementById("emailstatus").innerHTML = e + " is NOT OK"; }else{ document.getElementById("emailstatus").style.color = "green"; document.getElementById("emailstatus").innerHTML = e + " is OK"; } }, error:function(){ } }); } }

Entonces, el código funciona bien, pero el único problema proviene de esta verificación de condición que siempre devuelve VERDADERO :

 if(Object.keys(data).length === 0)

Básicamente, si ingreso una dirección de correo electrónico que no existe en la base de datos, se devolverá como data (resultados de console.log(data) ):

 {}

De lo contrario, devolverá este obj:

 { "id": 1, "name": "Myname", "email": "myemail@yahoo.com", "email_verified_at": null, "created_at": "2022-02-09T05:49:27.000000Z", "updated_at": "2022-02-09T05:49:27.000000Z" }

Entonces necesito verificar correctamente si el objeto devuelto está vacío o no.

Pero parece que if(Object.keys(data).length === 0) no está verificando correctamente esa condición, ya que siempre es VERDADERO y, por lo tanto, la declaración [email] is OK aparece en la página.

Entonces, ¿cómo verificar correctamente si el objeto devuelto está vacío o no?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Object.keys debería funcionar:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Le sugiero que verifique dos veces los parámetros enviados a la función de success .

over 4 years ago · Santiago Trujillo Denunciar

0

Puede verificar una propiedad específica, si no está allí, será undefined , lo que significa que no obtuvo una respuesta correcta.

Combinar undefined con || para obtener un "valor si no está establecido", da:

 success:function(data) { var success = (data.id || 0) > 0;

Simplemente puede verificar if (data.id == undefined) , pero hay una serie de advertencias al comparar con undefined

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda