我正在尝试使用Bassistance jQuery插件实现电子邮件验证,检查电子邮件地址是否存在。
远程脚本正确返回true
或false
,但是没有显示错误消息。其他验证(必需的,电子邮件)工作良好。
你知道我错过了什么吗?
jQuery代码:jQuery().ready(function() {
jQuery("#post").validate({
rules: {
lid_email: {
required: true,
email: true,
remote: {
type: 'POST',
url:"email-check.php"
}
}
},
messages: {
lid_email: {
required: 'Gelieve een geldig e-mailadres in te vullen.<br>',
email: 'Gelieve een geldig e-mailadres in te vullen.<br>',
remote: 'Dit adres bestaat reeds. Gelieve een ander adres te kiezen.'
}
}
})
jQuery('#lid_email').blur(function() {
jQuery("#post").validate().element( "#lid_email" );
});
});
和远程脚本:
<?php
header('Content-type: application/json');
require('../../../wp-blog-header.php');
$request = trim(strtolower($_POST['lid_email']));
if ( email_exists($request) == TRUE ) {
echo json_encode(FALSE);
} else {
echo json_encode(TRUE);
}
?>
您试过:
echo (email_exists($request) === true )?'true':'false'
代替:
if ( email_exists($request) == TRUE ) {
echo json_encode(FALSE);
} else {
echo json_encode(TRUE);
}
我有一个类似的问题,我用这种方式解决。此外,我向你评论过,这样我就不需要放一个json头。
我找到了解决方案:
-
我在Wordpress网站中使用脚本,并包含wp-blog-header.php以便访问Wordpress函数。
-
显然
require('../../../wp-blog-header.php
行破坏了json功能 -
如果我删除这一行,布尔值将被正确发送,并显示错误消息。
-
我所要做的就是写一个我自己的user_exists-function,然后问题应该就解决了