У меня есть этот код:
$(document).ready(
function(){
$('#formulario').validate(
{
rules:{
nombre:{ required: true },
direccion:{ required: true },
cpostal:{ required: true, number: true },
telefono:{ required: true, number: true },
correo:{
required: true,
email: true,
remote: { url: "lib/comprueba.php", type: "POST" }
},
personaContacto:{ required: true },
cargo:{ required: true },
usuario:{ required: true },
contrasena:{ required: true },
tlfContacto:{ required: true, number: true }
},
messages:{
nombre:{ required: "Introduce un nombre." },
direccion:{ required: "Introduce una dirección." },
cpostal:{
required: "Introduce un codigo postal.",
number: "Error: Campo numérico." },
telefono:{
required: "Introduce un teléfono.",
number: "Error: Campo numérico." },
correo:{
required: "Introduce un email.",
email: "Error: ej. correo@servidor.dominio",
remote: "Ese correo ya existe." },
personaContacto:{ required: "Introduce una persona de contacto." },
cargo:{ required: "Introduce un cargo." },
usuario:{ required: "Introduce un usuario." },
contrasena:{ required: "Introduce una contraseña." },
tlfContacto:{
required: "Introduce un telefono para la persona de contacto.",
number: "Error: Campo numérico." }
}
}
);
}
);
и этот код в php файле:
//session_start();
include('bbdd4.php');
if(isset($_REQUEST['correo'])===true){
$email = $_REQUEST['correo'];
$comprobarEmail = obtener("SELECT correo FROM usuario WHERE correo = '$email'");
if(isset($comprobarEmail[0]['correo'])){
$valido = false;
}else{
$valido = true;
}
header('Content-type: application/json');
echo json_encode($valido);
//echo $valido;
}
Проблема в том, что когда php возвращает true, в html javascript переводит элемент в значение valid, а когда php возвращает false, элемент вводится в значение valid. : S
Изображение момента:
см. Внизу ответ php
Извините за мой плохой английский.
Я нахожу решение здесь: Проверка имени пользователя JQuery , с некоторыми изменениями:
$(document).ready(
function(){
jQuery.validator.addMethod("comprobarCorreo", function(email) {
var isSuccess = false;
$.ajax({ url: "lib/comprueba.php",
data: "correo=" + email,
async: false,
success:
function(msg) { isSuccess = msg;}
});
return isSuccess;
},"");
$('#formulario').validate(
{
rules:{
nombre:{ required: true },
direccion:{ required: true },
cpostal:{ required: true, number: true },
telefono:{ required: true, number: true },
correo:{
required: true,
email: true,
comprobarCorreo: true
},
personaContacto:{ required: true },
cargo:{ required: true },
usuario:{ required: true },
contrasena:{ required: true },
tlfContacto:{ required: true, number: true }
},
messages:{
nombre:{ required: "Introduce un nombre." },
direccion:{ required: "Introduce una dirección." },
cpostal:{
required: "Introduce un codigo postal.",
number: "Error: Campo numérico." },
telefono:{
required: "Introduce un teléfono.",
number: "Error: Campo numérico." },
correo:{
required: "Introduce un email.",
email: "Error: ej. correo@servidor.dominio",
comprobarCorreo: "Ese correo ya existe"},
personaContacto:{ required: "Introduce una persona de contacto." },
cargo:{ required: "Introduce un cargo." },
usuario:{ required: "Introduce un usuario." },
contrasena:{ required: "Introduce una contraseña." },
tlfContacto:{
required: "Introduce un telefono para la persona de contacto.",
number: "Error: Campo numérico." }
}
}
);
}
);
и тот же php.