全局变量 JavaScript

发布于 2024-12-01 15:26:18 字数 431 浏览 0 评论 0原文

我在 JavaScript 中有一个函数,我尝试更改函数中的全局变量,但始终返回相同的初始值 3:

例如:起始值 3,函数值 0,但始终警报 3。

    var test = 3;
    jQuery.ajax({
         type: "POST",
         url: "ajax_js.php",
         data: String,
         success: function(result){
            test = result;
              if(result == 0){
                 $('input[name=user_name]').val('');
                 }
          }
     });
     alert( test);

I have an function in JavaScript, I try to change an global var from an function but always returns the same initial value 3:

For example: start value 3, function value 0, but always alert 3.

    var test = 3;
    jQuery.ajax({
         type: "POST",
         url: "ajax_js.php",
         data: String,
         success: function(result){
            test = result;
              if(result == 0){
                 $('input[name=user_name]').val('');
                 }
          }
     });
     alert( test);

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

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

发布评论

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

评论(2

纸伞微斜 2024-12-08 15:26:18

Ajax 中的 A 表示异步。

您的警报将在请求完成之前、调用 success 之前被调用,并且有机会更新变量。

尝试将警报移至回调函数中,看看是否有效。

The A in Ajax means asynchronous.

Your alert is being called before the request is finished, before success is called and has a chance to update the variable.

Try to move the alert into the callback function and see if that works.

时光是把杀猪刀 2024-12-08 15:26:18

把你的 var test = 3;在函数之外,例如:

<script type="text/javascript">
var test = 3;
$('#button').click(function() {
jQuery.ajax({
     type: "POST",
     url: "ajax_js.php",
     data: String,
     success: function(result){
        test = result; 
        alert( test);
          if(result == 0){
             $('input[name=user_name]').val('');
             }
      }
 });
});

</script>

put your var test = 3; outside of the function eg:

<script type="text/javascript">
var test = 3;
$('#button').click(function() {
jQuery.ajax({
     type: "POST",
     url: "ajax_js.php",
     data: String,
     success: function(result){
        test = result; 
        alert( test);
          if(result == 0){
             $('input[name=user_name]').val('');
             }
      }
 });
});

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