编辑:我发现代码工作正常,没有错。这是我自己的模糊。抱歉没有小心。
我有一个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;
在控制台中按预期成功执行。
我在功能上做错了吗?
答案 0 :(得分:0)
从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
不存在,则会导致运行时错误。
答案 1 :(得分:0)