函数中的“变量未定义”错误

时间:2015-04-13 01:33:09

标签: javascript

我在函数中遇到“变量未定义”错误。变量“recID”定义为:

var recID = 0;

我也有一个输入:

<input type="text" id="rdy">

我为变量赋值(这是实际分配值的修改版本,对于这个问题):

recID = 3;

然后我调用一个函数:

<a href=""><input type="button" name="button" id="button" value="Next Hypothetical" onclick='reselectState()'></a>

功能是:

<script>
    function reselectState() {
        var elem = document.getElementById("rdy");
        elem.value = recID;

        var rdy = $("#rdy").val();
        alert(rdy);
        location.href = '/hypothetical.cshtml?recordkey=' + rdy;
    }
    </script>

我得到的错误说“recID”未定义。

2 个答案:

答案 0 :(得分:0)

这意味着recID不是全局变量。如果您发布更多代码或完整文件,这将非常有用。另一个问题可能是recID从未定义过。

您应该在调用reselectState之前定义recID,如下所示:

var recID = 0;

function reselectState() {
    var elem = document.getElementById("rdy");
    elem.value = recID;

    ...
}

如果您使用这些方法中的任何一种来定义它recID将不是全局的:

(function(){
  recID = 0;
});

anotherFunction = function(){
  recID = 0;
}

如果这是问题,您可以使用window修复此问题:

(function(){
  window.recID = 0;
});

anotherFunction = function(){
  window.recID = 0;
}

答案 1 :(得分:0)

使用窗口或将其作为参数传递给函数。