我一直在尝试使用 jQuery 和 Ajax 验证在输入字段中键入的电子邮件地址。似乎我的验证 PHP 中的 jQuery addClass 和 removeClass 似乎不适用于主 PHP 文件。
这是我的代码:-
<table cellspacing="10px" cellspacing="5px" class="sign_up_table">
<tr>
<td>
<input class="ui_input2 no_space inpt1913" id="input_email" type="email" name="i_email" style="height:25px; width:300px; font-size:16px;" required />
</td>
<td id="input_email_error">
<img src="img/a_loader.gif" id="a_loader_i" style="display:none; position:relative; top: 2px;" />
</td>
</table>
我的 jQuery:
$(document).ready(function() {
$('#input_email').on('input',function(e){
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var val_i_email = $("#input_email").val();
var empty = false;
$('#input_email').each(function() {
if (val_i_email < 5 || !emailReg.test(val_i_email)) {
empty = true;
}
});
if (empty) {
$(this).addClass("invalid");
$(this).removeClass("valid");
$email_valid = false;
} else {
var i_email = $("#input_email").val();
$('#a_loader_i').show();
$.ajax({
type: "POST",
url: '/script/validate_email.php',
data: {i_email:i_email},
cache: false,
success: function(){
$("#a_loader_i").hide();
$email_valid = true;
}
});
}
});
});
PHP:
// include pdo config
include_once ('config.php');
// store the values submitted by form in variable
$email=$_POST['i_email'];
// query
foreach($pdo->query("SELECT * FROM Users WHERE email='$email'") as $row); {
if ($email == $row['Email']) {
echo "<script>
$('#input_email_error').append('This email has already been taken');
$('#input_email').addClass('invalid');
$('#input_email').removeClass('valid');
$('#a_loader_i').hide();
</script>";
}else{
echo "<script>
$('#input_email').addClass('valid');
$('#input_email').removeClass('invalid');
$('#a_loader_i').hide();
</script>";
}
}
$pdo = null;