Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;未捕获类型错误:无法读取属性';名称';“未定义”的定义;当触发一个函数时_Javascript - Fatal编程技术网

Javascript &引用;未捕获类型错误:无法读取属性';名称';“未定义”的定义;当触发一个函数时

Javascript &引用;未捕获类型错误:无法读取属性';名称';“未定义”的定义;当触发一个函数时,javascript,Javascript,编辑:我发现代码工作正常,没有任何问题。模糊的是我自己。对不起,我不小心。 我有一个HTML文件,其中的表单包含一个ID为StuIDtxt的文本框 还有一些JavaScript,我的文件中有一段代码。提交表单时将触发函数getResult() function getResult(){ var StuID = document.getElementById('StuIDtxt').value; document.getElementById('name').innerHTML = res

编辑:我发现代码工作正常,没有任何问题。模糊的是我自己。对不起,我不小心。

我有一个HTML文件,其中的表单包含一个ID为StuIDtxt的文本框

还有一些JavaScript,我的文件中有一段代码。提交表单时将触发函数getResult()

function getResult(){
  var StuID = document.getElementById('StuIDtxt').value;
  document.getElementById('name').innerHTML = result[StuID].Name;
  return false;
}
还有一个变量名“result”,用于存储从JSON解析的数组

JavaScript控制台说,当我用“10001”填充文本框并提交表单时

Uncaught TypeError: Cannot read property 'Name' of undefined
但是打字

document.getElementById('name').innerHTML = result['10001'].Name;
在控制台中按预期成功执行

我在函数中做错了什么吗


Live web here:

https://srakrn.com/satitnpru/announce/result_demo.json
不包含
10001
的任何id。如果我尝试
00001
则不会发生错误。像这样改变:

function getResult(){
  var StuID = document.getElementById('StuIDtxt').value;
  if ( StuID != null && StuID.trim() != "" )
  {
       if ( typeof result[StuID] != "undefined" )
           document.getElementById('name').innerHTML = result[StuID].Name;
       else
           alert("Unknonw ID: " + StuID);
  }
  return false;
}

在代码中,您假设给定的ID将始终存在于
结果中
,并直接引用
名称
。如果StuID不存在,这将导致运行时错误。

可能是因为“10001”不存在

这是
结果的日志


我使用了'00020'及其OK

作为测试,您可以执行
console.log(StuID)
控制台日志(结果)getResult
函数中选择code>?机会是这两件事中的一件不是你想象的那样。