Здравствуйте Все! Начал изучать JavaScript, jQuery... Ну и решил начать с модернизации моего сайта, а именно с создания более красивой и грамотной регистрации (проверки e-mail для начала) с использование JavaScript, потом наткнулся на JQuery и решил объединить красивое с полезным.
Идея такова, e-mail считается верным, если он прошел проверку в регулярных выражениях, а также если его нет в базе данных, вот что у меня получилось:
function checkMail()
{
var mailValue = document.getElementById("e_mailEdit");
var mailExp = /^[a-zA-Z0-9_\.\-]+\@[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,6}$/;
checkRes = mailValue.value.match(mailExp);
if(checkRes != null)
{
//Обращаемся к серверу для проверки
$(document).ready(function() {
$('#e_mailEdit').blur(function() {
jQuery.post('/checkReg.php',{e_mailEdit: $('#e_mailEdit').val()},
function(data) {
if(data.success == true)
{
$('#checkMailDiv').html(data.message);
}
else if(data.success == false)
{
$('#checkMailDiv').html(data.message);
};
},'json');
});
});
}
else if(checkRes == null)
{
//Ищем <div> в который будет выведен отрицательный ответ
$('#checkMailDiv').html("You should check e-mail and try again.");
}
}
</script>
<form method="post" name="regForm" action="index.php">
<table align="center" cellpadding="0" cellspacing="0" width = "400">
<tr>
<td width="15%">E-mail:</td>
<td width="5%">*</td>
<td width="40%"><input type="text" id = "e_mailEdit" onBlur="checkMail();"></td>
<!-- В базе данных e-mail является уникальным. Если пользователь ввел уже зарегистрированый почтовый ящик предложить восстановить пароль и вывести сообщение об ошибки -->
<td width="40%"><div id="checkMailDiv"></div></td>
</tr>
</table>
</form>
<?php
include "connect.php";
if($_POST)
{
if(!empty($_POST['e_mailEdit']))
{
mailCheck($_POST['e_mailEdit']);
}
else
{
$mailEmpty = "You must enter e-mail address";
echo $mailEmpty;
}
}
function mailCheck($mailIn)
{
//$mc = db_connect();
//$result = mysql_query("SELECT id FROM users WHERE e_mail = '"+$mailIn+"'",$mc);
//Отлаживал скрипт, временно кбрал проверку на существование в базе данных
if(1>0)
{
$data['success'] = true;
$data['message'] = 'All right';
}
else
{
$data['success'] = false;
$data['message'] = "This e-mail already used...";
}
echo json_encode($data);
}
?>
Теперь сама проблема: после того, как от сервера приходит положительный ответы All right, после того изменяю е-mail делая его не корректным, промелькивает надпись "You should check e-mail and try again" (сработала проверка на то что e-mail не прошел проверку на регулярное выражение и снова надпись становится All right). Помогите разобраться. Спасибо большое.