JavaScript 变量作用域

发布于 2024-11-25 13:42:02 字数 499 浏览 2 评论 0原文

这是我的代码

errors=0;
$(document).ready(function () {
    var chk=$("#usnm").val();
    $.post("register.php",{'chkuser':chk},function(data){
        if(data==" Username already exists.Choose a new one"){
            errors++;
            alert(errors);
            $("#alerts").html(data);
        }
     });
     if(errors==0){
         alert(errors+"post");
     }
});

在这里,第一个警报给我一个“1”,而第二个警报运行,因此它给我“0post”。我想知道的是:变量errors的值是怎么回事,从1到0突然变成0?

谢谢

Here's my code

errors=0;
$(document).ready(function () {
    var chk=$("#usnm").val();
    $.post("register.php",{'chkuser':chk},function(data){
        if(data==" Username already exists.Choose a new one"){
            errors++;
            alert(errors);
            $("#alerts").html(data);
        }
     });
     if(errors==0){
         alert(errors+"post");
     }
});

Here, the first alert gives me a "1" whereas the second alert runs, so therefore it give me '0post' . What i'd like to know is: How is the value of the variable errors, changing to 0 all of a sudden after being 1 ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁拥 2024-12-02 13:42:02

errors=0; 更改为 var error=0;

并将错误检查放入 $.post 函数中:

   $.post("register.php",{'chkuser':chk},function(data){
        if(data==" Username already exists.Choose a new one"){
            errors++;
            alert(errors);
            $("#alerts").html(data);
        }
        if(errors==0){
            alert(errors+"post");
        }
     });

Change errors=0; to var errors=0;

and put the error check inside the $.post function:

   $.post("register.php",{'chkuser':chk},function(data){
        if(data==" Username already exists.Choose a new one"){
            errors++;
            alert(errors);
            $("#alerts").html(data);
        }
        if(errors==0){
            alert(errors+"post");
        }
     });
禾厶谷欠 2024-12-02 13:42:02

jquery.post 被异步调用。您可能会在本地对其进行调试,否则第二个警报将首先出现。无论如何,因为它异步运行,所以 post 函数内部和外部的值是不同的

jquery.post is called asynchronously. you might be debugging it locally otherwise the second alert would go on the first place. anyways because it runs async the value is different inside and outside the post function

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文