Javascript 未捕获引用错误:未在HTMLTableRowElement.onclick上定义x
我四处寻找解决方案,但我可能只是错过了一些非常明显的东西,因为它们无法解决我的问题。我根本不是JS高手,只是一个免责声明 我有一个ASP项目,JavaScript有时会调用一些C代码。我用以下代码开始我的代码:Javascript 未捕获引用错误:未在HTMLTableRowElement.onclick上定义x,javascript,jquery,Javascript,Jquery,我四处寻找解决方案,但我可能只是错过了一些非常明显的东西,因为它们无法解决我的问题。我根本不是JS高手,只是一个免责声明 我有一个ASP项目,JavaScript有时会调用一些C代码。我用以下代码开始我的代码: window.onload = function () { LiveSearch(); getCredentials(); getAllUsers(); getIsAdmin(); }; 所有这些函数都工作得很好。但是有趣的是getAllUsers(),
window.onload = function () {
LiveSearch();
getCredentials();
getAllUsers();
getIsAdmin();
};
所有这些函数都工作得很好。但是有趣的是getAllUsers(),因为它通过AJAX调用与后端联系,以获取一些数据来填充表
function getAllUsers() {
var result_body = "";
$.ajax({
type: 'GET',
url: '/Home/GetAllUsers',
dataType: 'json',
cache: false,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(""),
success: function (users) {
PushToScope("users", users);
var dict = scope[2];
if (dict.key.length > 0) {
for (var key in dict.value) {
result_body += '<tr onclick="getClickedUserObject(' + dict["value"][key].Initials + ')\">';
result_body += '<td class=\"col-xs-4\">' + dict["value"][key].Name + '</td>'
result_body += '<td class=\"col-xs-4\">' + dict["value"][key].Title + '</td>'
result_body += '<td class=\"col-xs-4\">' + dict["value"][key].Department + '</td>'
result_body += '<td style=\"display: none\">' + dict["value"][key].PrivatePhone + '</td>'
result_body += '<td style=\"display: none\">' + dict["value"][key].WorkEmail + '</td>'
result_body += '<td style=\"display: none\">' + dict["value"][key].WorkPhoneLandline + '</td>'
result_body += '<td style=\"display: none\">' + dict["value"][key].WorkPhoneMobile + '</td>'
result_body += '</tr>';
}
} else {
result_body += '<tr>';
result_body += '<td style=\"col-xs-12\"><b>No Data. Try again, or Contact IT Support.</b></td>';
result_body += '</tr>';
}
$('#result-table').html(result_body);
}
});
}
函数getAllUsers(){
var结果_body=“”;
$.ajax({
键入:“GET”,
url:“/Home/GetAllUsers”,
数据类型:“json”,
cache:false,
contentType:'application/json;charset=utf-8',
数据:JSON.stringify(“”),
成功:功能(用户){
推送镜(“用户”,用户);
var dict=范围[2];
如果(dict.key.length>0){
for(dict.value中的var键){
结果_body+='';
结果\u body+=''+dict[“value”][key].Name+''
结果\u body+=''+dict[“value”][key]。Title+''
结果\u body+=''+dict[“value”][key]。部门+''
结果_body+=''+dict[“value”][key]。私人电话+''
结果\u body+=''+dict[“value”][key]。工作电子邮件+''
结果\u body+=''+dict[“value”][key]。WorkPhoneLandline+''
结果\u body+=''+dict[“value”][key]。WorkPhoneMobile+''
结果_body+='';
}
}否则{
结果_body+='';
结果_body+=“无数据。请重试,或与IT支持部门联系。”;
结果_body+='';
}
$(“#结果表”).html(结果体);
}
});
}
正如我所说,上面的方法是有效的,但是当我单击表中的一个元素时,问题就出现了。下面的“getClickedUserObject()”:
函数getClickedUserObject(字母代码){
如果(字母代码!=未定义){
var用户=范围[2];
var user=用户[“值”][字母代码];
$('#结果标题').html(user.title);
$('#结果名').html(user.name);
$(“#结果部门”).html(user.department);
$(“#结果电子邮件”).html(“”);
$('#result work mobile').html(user.WorkPhoneMobile);
$('#result work landline').html(user.WorkPhoneLandline);
$('#result private mobile').html(user.PrivatePhone);
如果(lettercode==范围[0]){
$(“#HidePrivate”).show();
$(“#HidePrivate”).disabled=false;
$(“#HidePrivate”).checked=user.hiddenprovatephone;
}否则{
$(“#HidePrivate”).hide();
$(“#HidePrivate”).disabled=true;
}
}
返回false;
}
这个函数从不启动,相反,我在标题中得到了错误,表示单击一行得到的任何字母代码都没有定义。这对我来说很奇怪,因为在Google Chrome inspector中我看到:
那么给出了什么呢?我不熟悉你的函数,但可能参数应该是字符串?看起来函数调用中没有任何引号 像这样:
result_body += '<tr onclick=\"getClickedUserObject(\'' + dict["value"][key].Initials + '\')\">';
result_body+='';
是的,这就是问题所在。我不知道你到底投了什么票。谢谢如果您试图访问一个不存在的对象的属性,而没有工作示例,我真的帮不了什么忙,它可能是用户之一。*
,您可以注释掉整个块,然后逐行删除注释,看看它在哪一点断开M.D已经指出了问题。
result_body += '<tr onclick=\"getClickedUserObject(\'' + dict["value"][key].Initials + '\')\">';