Hola:
hace algunos días hice una consulta parecida y al final se arregló con unas simples comillas que faltaban, ahora no faltan y ha vuelto a aparecer este problema. El código del html es:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulario Inmobiliaria</title>
<link rel="stylesheet" href="inmo.css" type="text/css" />
<!--[if lt IE 8]><link rel="stylesheet" href="inmoIE.css" type="text/css" title="" /><![endif]-->
<script type="text/javascript" src="comprobarCorreo.js"></script>
</head>
<body>
<div id="contenedor">
<div id="inmo">
<h1>Solicitud de información</h1>
<h2>Cumplimentar todas las casillas salvo la de Comentario que es opcional</h2>
<p>Una vez recibido el formulario le enviaremos la información por usted solicitada</p>
<form name="datos" action="formInmob.php" method="post" onsubmit="return comprobarCorreo();">
<input type="hidden" name="enviado" value="enviar" />
<p>Nombre:<input type="text" name="nombre" size=50 maxlength=20 /></p>
<p>Apellidos:<input type="text" name="apellidos" size=50 maxlength=30 /></p>
<p>Dirección:<input type="text" name="direccion" size=50 maxlength=50 /></p>
<p>E-mail:<input type="text" name="email" size=50 maxlength=50 /></p>
<p>País:<input type="text" name="pais" size=30 maxlength=30 /></p>
<p>Ciudad:<input type="text" name="ciudad" size=30 maxlength=30 /></p>
<p>Teléfono:<input type="text" name="telefono" size=30 maxlength=30 /></p>
<p>Información sobre:<select name="informacion">
<option>Casas en alquiler</option>
<option>Casas en venta</option>
<option>Pisos en alquiler</option>
<option>Pisos en venta</option></select></p>
<p>Comentario:<textarea name="comentario" rows=10 cols=60></textarea></p>
<p><input class="boton" type="submit" name="Enviar" value="Enviar" /><input class="boton" type="reset" name="reset" value="Borrar" /></p>
</form>
</div>
</div>
</body>
</html>
y el del javascript es este:
function correo ()
{
expresion=/^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|m il|museum|name|nato|net|org|pro|travel)$/;
resultado = expresion.test(this);
return resultado;
}
function comprobarCorreo ()
{
var fallo = false;
var falta = "";
if (datos.nombre.value == "") {
falta += "Falta su nombre.\n";
fallo = true;
}
if (datos.apellidos.value == "") {
falta += "Faltan sus apellidos.\n";
fallo = true;
}
if (datos.direccion.value == "") {
falta += "Falta su dirección.\n";
fallo = true;
}
if (datos.ciudad.value == "") {
falta += "Falta su ciudad.\n";
fallo = true;
}
if (datos.pais.value == "") {
falta += "Falta su país.\n";
fallo = true;
}
if (datos.telefono.value == "") {
falta += "Falta su número de teléfono.\n";
fallo = true;
}
String.prototype.correo = correo;
datos.email.value = datos.email.value.toLowerCase();
if (!(datos.email.value.correo())) {
falta += "El e-mail no parece correcto.\n";
fallo = true;
}
if (fallo) {
alert(falta);
return false;
}
else {
return true;
}
}
El problema es que cuando la página html tiene el <!DOCTYPE..... 1999/xhtml"> el javascript no funciona, y si se lo quito dejando la página empezando en <html> entonces si funciona. Alguna idea de porque este comportamiento?
Jorge H.