Estoy haciendo un formulario donde se introduce una direccion de email y se comprueba su validez (no sintáctica, sino existencia real) mediante un php (dyn_validate_email.php) que devuelve un JSON de la forma "{'mail':'x'}", donde x puede ser 0 ó 1. Este valor lo consulto con el método getJSON, y dependiendo si es válido o no, cambio una imagen al lado del input (la misma imagen que al pulsar activa el callback).
El caso es que llevo más de un año usando getJSON y nunca me había encontrado con un problema semejante! Puedo ver que por Firebug el script php me devuelve el JSON correctamente, pero el js no hace nada más, es decir, no se me ejecuta el function definido a continuación.
Os indico el código que utilizo:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript">if(typeof jQuery==='undefined'){document.write(unescape("<scri"+"pt src='../includes/js/jquery-1.5.min.js' type='text/javascript' />"));}</script> <script> $(document).ready(function(){ $("#img_email").click( function(){ $.getJSON("../tools/dyn_validate_email.php?mail="+$("#email").val(),function(json){ if (json.mail == '1'){ imagen_resultado = "thumb"; } else { imagen_resultado = "thumb-up"; } $(this).attr("src","images/16/"+imagen_resultado+".png"); }); }); }); </script> </head> <body> <form> <input type="text" id="email" name="email"></input> <img class="icon" id="img_email" name="img_email" src="images/16/mail-exclamation.png" width="16" height="16" alt="Valida"/> </form> </body> </html>
¿A alguien se le ocurre qué puede ser? Gracias!!