Ajax密码匹配

问题描述 投票:0回答:1

我有一个HTML表单,并且具有两个字段:password和passwordconf,我想使用ajax来检查密码是否匹配而不刷新页面。这是我到目前为止尝试过的:

这是我的注册文件中的脚本:

<script>

$('#password,#passwordconf').focusout(function (){
    var password=$(this).val();
    var passwordconf=$(this).val();

    $.ajax({
        url:"verifpass.php",
        method:"POST",
        data:{password:password,
        passwordconf:passwordconf},
        succes:function(result){
            $(".result").html(result);
    }});
});

上面的脚本在另一个文件中链接到该php:

<?php include('config.php');

$password=$_REQUEST['password'];
$passwordconf=$_REQUEST['passwordonf'];

if(($passowrd!=null) && ($passwordconf!=null))
{
    if($password!=$passwrdconf)
    { 
        $msg1="<span style='color:red'>nu</span>";
    }
    else { $msg1="<span style='color:green'>da</span>"; }
}
echo $msg1;

?>

控制台显示,当我更新字段时发给这两个密码的帖子已发送,但未显示任何消息,我无法弄清楚原因。

javascript jquery ajax
1个回答
0
投票

从客户端检查值比在服务器上检查要容易得多。而且,由于它还不敏感,也没有在JavaScript中进行硬编码,因此不会有问题。

只需确保选择正确的字段。 $(this)是触发事件的当前字段。因此,在您的情况下,第一个或第二个密码字段。要从两个字段中获取字段,只需预选它们即可。

然后比较这些值并在客户端执行操作。这将减少客户端和服务器之间的通信麻烦,并使警告或检查更快地进行评估和显示。

但是,如果您要从数据库中检查电子邮件地址,则该方法将有意义,因为数据存储在其中。

success回调缺少s,因此在$.ajax完成后将永远不会调用该函数。始终仔细检查您的拼写。

var $password = $("#password");
var $passwordConf = $("#passwordconf");
var $result = $(".result");

$('#password, #passwordconf').focusout(function (){
    var password = $password.val();
    var passwordconf = $passwordConf.val();

    if (password !== passwordconf) {
       $result.html("<span style='color:red'>nu</span>");
    } else {
       $result.html("<span style='color:green'>da</span>");

       // You won't need to do the check anymore, but maybe you want to store
       // the data filled in by the user? So I'll leave it here.
       $.ajax({
         url:"verifpass.php",
         method:"POST",
         data:{
           password: password,
           passwordconf: passwordconf
         },
         success: function(result){
            $result.html(result);
         }
       });

    }
});
© www.soinside.com 2019 - 2024. All rights reserved.