当电子邮件与jQuery验证一起使用时,我尝试显示错误消息。 不幸的是,当电子邮件已被使用时,没有错误消息。 我尝试了以下方法:
的Javascript
$('#registerForm').validate({
rules: {
registerEmail: {
required: true,
remote: 'ajax/ajax.validateEmail.php'
}
},
messages: {
registerEmail: {
remote: 'E-Mail already taken'
}
}
});
PHP
<?php
header('Content-type: application/json');
$stmt = $mysqli->prepare("SELECT * FROM members m WHERE mEmail = ? LIMIT 1");
$stmt->bind_param('s', $_POST['registerEmail']);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
if ($stmt->num_rows == 1) {
echo false;
}else{
echo true;
}
我在这里做错了什么? 在此先感谢您的帮助!
答案 0 :(得分:0)
你需要在后端php文件中使用echo return true
或false
。
而不是
echo(json_encode(false));
变化
echo 'false';
TRUE
<强>解释强>
jQuery远程方法需要从远程网址输出true
或false
。
如果我们在那里回显,jQuery认为它是boolen true
如果我们回显false
,jQuery会将其转换为布尔false
。
答案 1 :(得分:0)
并且存在语法错误:
$('#registerForm').validate({
rules: {
registerEmail: {
required: true,
remote: 'ajax/ajax.validateEmail.php'
},
应
$('#registerForm').validate({
rules: {
registerEmail: {
required: true,
remote: 'ajax/ajax.validateEmail.php'
}
},
答案 2 :(得分:0)
好的,找到诀窍:
remote: { url: 'ajax/ajax.validateEmail.php', type:'post', async:false }
header('Content-type: application/json');
echo json_encode( false );
希望这对任何人都有帮助:))