"未捕获的类型错误:无法读取属性'名称'未定义的“;当触发一个功能时
"Uncaught TypeError: Cannot read property 'Name' of undefined" when triggered a function
EDIT:我发现代码运行良好,没有任何问题。模糊的是我自己。很抱歉没有谨慎
我有一个HTML文件,其中包含一个ID为#StuIDtxt的文本框。
还有一些JavaScript,这里是我的文件中的一段代码。函数getResult()将在表单提交时触发。
function getResult(){
var StuID = document.getElementById('StuIDtxt').value;
document.getElementById('name').innerHTML = result[StuID].Name;
return false;
}
还有一个变量名"result"存储从JSON解析的数组。
当我在文本框中填写"10001"并提交表格时,JavaScript控制台显示
Uncaught TypeError: Cannot read property 'Name' of undefined
但是键入
document.getElementById('name').innerHTML = result['10001'].Name;
在控制台中,结果按预期成功执行。
我在函数中做错了什么吗?
此处为Live web:https://srakrn.com/satitnpru/announce
从https://srakrn.com/satitnpru/announce/result_demo.json
检索到的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将始终存在于result
中,并直接引用Name
。如果StuID
不存在,这将导致运行时错误。
也许是因为"10001"不存在
这是来自result
var 的日志
http://prntscr.com/9mdsjv
我使用了"00020"及其OK
相关文章:
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 使用Jquery创建一个具有单击和悬停功能的菜单
- Navgoco不是一个影响密码保护页面的功能
- 如何创建一个脚本,该脚本给定网站列表,它使用其搜索功能来获取信息
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 重置功能,因此一次只有一个打开
- 具有双重功能的按钮:在_blank窗口中打开一个链接,再加上_self中的另一个链接
- 使用单选按钮参考另一个功能
- 一个Ajax函数能产生另一个Ajax功能吗
- 流星:移除不是一个功能
- 通过模糊功能传递链接,而不是单击另一个链接
- 使jQuery自动完成功能适用于多个单词(“跳过”一个单词)
- 浏览器同步摄像头加速视频播放不是一个功能
- 谷歌应用程序脚本搜索UI下一个和上一个功能
- 如何阻止一个Submit按钮运行Submit Click功能
- 如何使用上一个/下一个功能循环数组中的图像
- 是否可以设置一个功能“;联系我们”;页面使用HTML/CSS
- 最有效:不同的功能/一个功能有案例
- 我正试图找出如何使我的功能一个接一个地运行.但这并没有奏效
- Grails ajax功能——一个“恼人的bug”