我正在访问javascript变量,但我无法使用以下代码访问它。
<script type="text/javascript">
function msg1(a)
{
var1=a;
}
function msg2(b)
{
var2=b;
}
</script>
<input type="radio" name="people" onfocus="msg1(this.value);" value="2">
<input type="radio" name="rating" onfocus="msg2(this.value);" value="5">
<script type="text/javascript">
if(var1==2 && var2==5)
document.getElementById("scores").innerHTML='511';
</script>
然而,不是通过onfocus事件调用函数,当我直接调用函数时,代码运行。正在运行的代码是: -
<script type="text/javascript">
function msg1(a)
{
var1=a;
}
function msg2(b)
{
var2=b;
}
msg1(2);
msg2(5);
if(var1==2 && var2==5)
document.getElementById("scores").innerHTML='511';
</script>
我无法弄清楚代码中的错误是什么。 Plz建议我。
答案 0 :(得分:2)
这是一个时间问题。
由于在您尝试阅读它们时尚未设置它们,因此会出现错误。
你再也不会尝试阅读它们了。
您必须先设置它们才能阅读它们。
移动逻辑以测试更改它们的事件处理程序中的变量值。
加载页面时,您还应声明它们(并可能为它们指定默认值)。否则,第一个事件处理程序将尝试设置其中一个,然后读取它们(此时一个将是未声明的,您仍然会得到一个引用错误。)