Проверка jquery с помощью ajax-вызова
Я использую проверку jquery, и мне нужно проверить электронную почту.
Я использую
$("#myForm").validate({
rules:
email: {
required: true,
email: true
}
})
SO FAR так хорошо. Проблема в том, что мне нужно сделать ajax-вызов, чтобы проверить, существует ли уже существующая электронная почта. Если существует отображаемое сообщение "Это письмо уже выходит. Пожалуйста, выберите другое".
Может ли кто-нибудь помочь мне реализовать это.
Ответы
Ответ 1
remote: "/some/remote/path"
Этот путь будет передан значение поля в $_GET.
поэтому.. то, что на самом деле вызвано в вашем случае, будет:
/some/remote/path?email=someemailuriencoded
Введите код на стороне сервера только текст true или false.
Затем соответствующее сообщение также называется remote.
remote: "The corresponding email already exists"
Мой код для чего-то подобного:
$("#password_reset").validate({
rules: {
email: { required: true, email: true, minlength: 6, remote: "/ajax/password/check_email" }
},
messages: {
email: { required: "Please enter a valid email address", minlength: "Please enter a valid email address", email: "Please enter a valid email address", remote: "This email is not registered" }
},
onkeyup: false,
onblur: true
});
Соответствующий код на стороне сервера в php:
$email_exists = $db->prows('SELECT user_id FROM users WHERE email = ? LIMIT 1', 's' , $_GET['email'] );
if ( $email_exists ) { echo 'true'; } else { echo 'false'; }
exit;
Конечно, используя мой материал абстракции базы данных, но вы его получите.
Ответ 2
Хорошо, это работает для меня...
$('[id$=txtEmail]').rules("add", { required: true, email: true,
remote:function(){
var checkit={
type: "POST",
url: WebServicePathComplete+"VerifyEmail",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{'email':'" +$('[id$=txtEmail]').val() + "'}"
};
return checkit;
}
});
Заметьте, что у меня есть вход с идентификатором 'txtMail'
Ответ 3
Какой у вас язык сервера? PHP или ASP?
Это часть jQuery:
$.ajax({
type: "POST",
url: "YourWebserviceOrWhatEver",
data: "{'Email':'[email protected]'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
if(msg.EmailExists){
//Email exists
alert("This email already exists. Please select other");
}
else {
//Email doesn't exist yet
doSomething();
}
}
});
Ответ 4
прежде всего, я хочу сказать вам, что если вы используете метод post в ajax, тогда не отправляйте электронную почту в url.
$.ajax({
type: "POST",
url: URLROOT + '/register/check/';
data: {email:email};
success: function (result) {
if (result == 'exist') {
return false;
} else {
return true;
}
}
});'
после этого вы удаляете параметр из функции контроллера.
'public function check(l) {
if($this->userModel->findUserByEmail($_POST['email'])==true)) {
return 'exist';
}
return 'false';
}'
Попробуйте это.