【问题标题】:Javascript getElementById().value returns undefined on input elements [closed]Javascript getElementById().value 在输入元素上返回 undefined [关闭]
【发布时间】:2020-05-27 21:34:01
【问题描述】:

我正在尝试制作一个小型 Web 应用程序,我需要从输入元素中获取值并将它们推送到数组中,次数不定。

我第一次这样做时它返回undefined,第二次它推送第一个值 x1 和 x2 的次数,但不是第二个值。

listentree 是全局变量。

function winner() 尚未被调用。

是的,在按下任何按钮之前,我都会在两个输入中输入一些内容。

var list = [];
var entree;

function addToList() {
  if (document.getElementById("Name")) {
    console.log("addToList triggered");
    entree = document.getElementById("Name").value
    for (i = 0; i < document.getElementById("Lose").value; i++) {
      list.push(entree);
    }
  }
}

function ausgeben() {
  for (j = 0; j < list.length; j++) {
    document.write(list[i] + " ");
  }
}
<label for="Name">Name</label>
<br>
<input type="text" name="Name" id="Name" maxlength="30">
<br>
<label for="Lose">Lose        </label>
<br>
<input type="Int" name="Lose" id="Lose" maxlength="40">
<br>
<button type="reset">Eingaben zurücksetzen</button>
<br>
<button onclick="addToList()">Eingaben absenden</button>
<button onclick="winner()">Los Ziehen</button>
<button onclick="ausgeben()">ausgeben</button>

【问题讨论】:

  • 试试console.log(typeof document.getElementById("Lose").value)。它输出什么类型? for 循环需要什么类型?
  • type="Int" 不存在,将被视为type="text"
  • 或者您可以使用type="number",这是一种专门为输入数值而设计的输入类型。
  • 你不应该在页面渲染后使用document.write()。在 DIV 中显示输出,或使用console.log() 进行调试。
  • “第一个值”和“第二个值”是什么意思?

标签: javascript html dom input undefined


【解决方案1】:

您在 for 循环中使用了i 而不是j,因此undefined 因为list[undefined]===undefined

var list=[], entree;
function addToList(){
    if(document.getElementById("Name")){
        console.log("addToList triggered");
        entree = document.getElementById("Name").value  
        for(i=0; i<document.getElementById("Lose").value; i++){
            list.push(entree);
        }
    }
}
function ausgeben(){
    for(j=0;j<list.length;j++){
    // you used i instead of j, hence "undefined"
        document.write(list[j] + " ");
    }
}
<label for="Name">Name</label> 
    <br>
    <input type="text" name="Name" id="Name" maxlength="30">
    <br>
    <label for="Lose">Lose        </label>  
    <br>
    <input type="Int" name="Lose" id="Lose" maxlength="40">
    <br>
    <button type="reset">Eingaben zurücksetzen</button>


<br>
<button onclick="addToList()">Eingaben absenden</button>
<button onclick="winner()">Los Ziehen</button>
<button onclick="ausgeben()">ausgeben</button>

【讨论】:

  • 当问题只是一个变量错字时,写一个完整的答案是没有意义的。
  • 谢谢你,我不知道我是怎么错过那个天哪
猜你喜欢
  • 2021-08-26
  • 1970-01-01
  • 2019-07-18
  • 2014-08-15
  • 1970-01-01
  • 2014-02-17
  • 1970-01-01
  • 2019-02-22
  • 2018-04-02
相关资源
最近更新 更多