【问题标题】:How to get global variable value to ajax如何获取全局变量值到ajax
【发布时间】:2013-09-25 12:38:04
【问题描述】:

我正在尝试在 ajax,jquery 函数中获取全局变量值。

我在这里使用此代码..

代码:

 <script type="text/javascript">

        var id;      
        function refreshRecord(id)
        {
           alert(id);
        }

     $(document).ready(function(){
     $("#refresh").click(function(){
         var fileId=id;
         alert("id is"+fileId);
         $.ajax({
            type:"post",
            url:"checkStatusAndNumRecs",
            data: {fileId:fileId},
            success:function(data){$("#div1").html(data);},
            error:function(data){$("#div1").html("It was a failure !!!");}
            });
            });
            }); 
</script>   

Onclick 一个提交按钮我正在调用 javascript 函数

<input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)">

我想要得到的是,我已经在脚本标签中声明了全局变量 id, 当我单击单选按钮时,onclick 事件使用一个参数“id”调用 javascript 函数 refreshRecord(id)

现在 id 值将被设置为某个值。现在我想在 jquery 函数中获取该变量值,并将其分配给

var fileId = id;

但是当我执行上述代码并单击按钮时。

在警报中它正确显示了第一个值(即来自 javascript 的警报正确出现)但来自 ajax、jquery 的警报是未定义或 [Object Object]

我该如何解决这个问题??

【问题讨论】:

  • 现在 id 值将被设置为某个值 - 在哪里?

标签: javascript jquery html ajax


【解决方案1】:

您需要将传递给函数的值分配给全局变量id。目前您没有分配它。函数的参数id只是函数的局部变量,不是同一个全局变量,全局变量id仍然是undefined

修改如下,

    var id;      
    function refreshRecord(value)
    {
       id = value;
       alert(id);
    }

【讨论】:

    【解决方案2】:

    您应该将字段中的值放入全局变量中:

    var id;      
    function refreshRecord(inputValue)
    {
        id = inputValue;
        alert(id);
    }
    

    因为如果你这样做:

    function refreshRecord(id)
    {
        alert(id);
    }
    

    由于函数范围内的名称冲突,无法在 refreshRecord 函数内访问 id 全局变量。请阅读了解范围:

    http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/

    【讨论】:

      【解决方案3】:

      我们在函数内部传递的参数充当该函数的局部变量。因此,在您的函数中,您实际上是在创建一个局部变量并设置值。

      试试这个 -

      var id;
      function refreshRecord() {
          id = $("input:radio").val();
      }
      

      为单选按钮提供一个更好的选择器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-28
        • 2020-12-03
        • 2014-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-29
        • 2015-12-09
        相关资源
        最近更新 更多