jQuery Validate: remote -一切正常,但没有显示错误


jQuery Validate: remote - everything works, but no error is shown

我正在尝试使用Bassistance jQuery插件实现电子邮件验证,检查电子邮件地址是否存在。

远程脚本正确返回truefalse,但是没有显示错误消息。其他验证(必需的,电子邮件)工作良好。

你知道我错过了什么吗?

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,然后问题应该就解决了