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

时间:2011-11-27 13:46:32

标签: php jquery jquery-validate

我正在尝试使用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);
}
?>

2 个答案:

答案 0 :(得分:2)

您是否尝试过:

echo (email_exists($request) === true )?'true':'false'

而不是:

if ( email_exists($request) == TRUE ) {
    echo json_encode(FALSE);
} else {
    echo json_encode(TRUE);
}

我有类似的问题,我以这种方式解决了。另外,我向你评论说,通过这种方式我不需要放一个json标题。

答案 1 :(得分:0)

我找到了解决方案:

  • 我在Wordpress网站上使用该脚本,并包含wp-blog-header.php,以便能够访问Wordpress功能。

  • 显然,行require('../../../wp-blog-header.php打破了json功能

  • 如果我删除此行,则会正确发送布尔值,并显示错误消息。

  • 我所要做的就是编写自己的user_exists-function,然后问题就解决了。