Javascript 输入字段返回未定义,但在更改值后工作

Javascript 输入字段返回未定义,但在更改值后工作,javascript,undefined,Javascript,Undefined,当我第一次点击这个函数时。它返回一个未定义的值。当我再次单击该函数时,该代码在这个表单中以及之后的每个表单中都可以正常工作 function askAc(x) {if(this.ac!=0) {response=this.ac; characters[x].setAc(response); this.ac=0; } else {response="<input class=widgetstyle onClick=_setAc(this.value

当我第一次点击这个函数时。它返回一个未定义的值。当我再次单击该函数时,该代码在这个表单中以及之后的每个表单中都可以正常工作

function askAc(x)
 {if(this.ac!=0)
   {response=this.ac;
    characters[x].setAc(response);
    this.ac=0;
   }
  else  
   {response="<input class=widgetstyle onClick=_setAc(this.value) size=2 type=text value="+characters[x].ac+">";
    characters[x].setAc(response);
   }
 }
function _setAc(x)
 {this.ac=x;
  this.refresh();
 }
警报(字符[x].ac+“/”+this.value+“/”+this.ac)最初返回未定义/未定义/0。 当我再次单击函数时,它返回26/undefined/0,并以我想要的方式捕获值。因此,基本上是说,当我最初单击粗体文本以显示文本字段时,字符[x].ac是未定义的

如何使“未定义”列表消失。当我第一次更改数组的值时,就会发生这种情况,但之后在同一数组中的每种形式都可以正常工作

function askAc(x)
 {if(this.ac!=0)
   {response=this.ac;
    characters[x].setAc(response);
    this.ac=0;
   }
  else  
   {response="<input class=widgetstyle onClick=_setAc(this.value) size=2 type=text value="+characters[x].ac+">";
    characters[x].setAc(response);
   }
 }
function _setAc(x)
 {this.ac=x;
  this.refresh();
 }
函数askAc(x)
{if(this.ac!=0)
{response=this.ac;
字符[x].setAc(响应);
该值为0.ac=0;
}
其他的
{response=”“;
字符[x].setAc(响应);
}
}
函数_setAc(x)
{this.ac=x;
这个。刷新();
}

您的输入字段是否具有value=”“属性或缺少该属性?缺少值attr可能导致未定义(可能仅在某些浏览器中)


您的代码不清楚您正在访问哪个输入字段。

menuContents+=“ac:+this.ac+”“这里没有值att。如果标签是a,我如何分配一个?我相信你的答案是正确的。现在我只需要弄清楚如何为不是输入标记的标记赋值。有什么建议吗?没有值属性。如果将.value添加到对象中,则它不是value=”“的等价物,它只是一个对象变量。在您的情况下,必须确保在首次使用之前手动初始化.value。