jQuery AJAX form validation

时间:2011-09-26 作者:Odyss3us

我正在尝试为我的站点创建一个自定义登录页面,即http://localhost/site/login, 我现在遇到的问题是,当用户尝试登录并输入错误的用户名或密码时,他们会被重定向到wp-login.php 您可以想象,这是一个有问题的页面,因此我想将AJAX表单验证添加到我的自定义表单中,但问题是我不确定如何以最佳方式进行验证。

如何使用jQuery AJAX验证用户?

这就是我迄今为止所做的:

jQuery:

$(\'#selector\').live(\'click\', function(){
    $.post(\'http://localhost/site/wp-login.php\', { action: \'login\' }, function(data){
        console.log(data);
    });
});
我知道这不是正确的方式,只是想让你们知道我在做什么。达到预期效果的最佳方式是什么?

提前感谢!

3 个回复
SO网友:lkraav

jquery Validation plugin 应该做你想做的事。

SO网友:ifdion

如果你想在你的主题中手工编写解决方案,而不是使用插件,你应该试试这个。

$(\'#signin-form input[type="image"]\').click(function(q){
    q.preventDefault();
    var inputData = $(\'#signin-form form\').serialize();
    var loginUrl = $(\'#signin-form form\').attr(\'action\');
    var homeUrl = $(\'#signin-form input[name="redirect_to"]\').attr(\'value\');
    $.ajax({
        type: "POST",
        url:  loginUrl,
        data: inputData,
        success: function(msg){
            testData = $(\'#login-status\',msg).html();
            if(testData == \'success\'){
                window.location = homeUrl;
            } else {
                $(\'#signin-form .error\').show(); // show error notification here
            }
        }
    });
});
首先,该函数阻止原始登录表单提交(非ajax登录),并将其替换为ajax请求。

如果提供的用户名和密码匹配,那么我们应该被重定向到某个“登录页面”。否则,我们将重定向到wp管理员/登录。php

成功后,函数将检查“登录页面”上是否有“登录状态”div,其内容为“成功”。如果我们这样做,我们所要做的就是重定向当前位置。如果没有,只显示错误通知。

希望这有帮助。

SO网友:Brian Fegter

尝试使用AJAX登录插件。http://wordpress.org/extend/plugins/login-with-ajax/ 如果您不喜欢某个功能,所有代码都在您的指尖上。这就是开源的美妙之处,你可以把别人构建的东西做得更好,并把它还给社区。我的立场是,如果它已经存在,为什么要重新发明轮子?使用所提供的内容进一步、更快地推进您的项目(在显然应该获得学分的地方给予原作者学分)。

结束

相关推荐

在插件中查询jQuery之前,我是否应该检查它

在一个使用jquery的典型插件的开头,我有如下内容wp_deregister_script(\'jquery\'); wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\', false, \'1.3.2\'); wp_enqueue_script(\'jquery\'); 据我所知,这将取消jquery的注册并将其重新排队(本例中来自g