在Chrome控制台中,当我单击按钮(删除保存)时,我收到此错误"未捕获的语法错误:意外的标识符"它还在控制台上打印 obj 并显示它的数据({companyId: 49305, groupId: 49343, keywordSearch: "misr1", query: "?searchType=Bib&SearchValueTBX=misr1&SearchTypeDDL...cet_Author=&Facet_CountryName=&Facet_LibraryName=",已保存:真,...})
function userSave(){
var userId=$("#userId").val();
var companyId=$("#companyId").val();
debugger;
Liferay.Service(
'/MyLibrary_ServiceBuilder-portlet.searchhistory/display-saved',
{
userId: userId,
companyId: companyId
},
function(obj) {
console.log(obj);
html='';
var i;
for(i =0;i<obj.length;i++){
html+="<li id='"+obj[i].searchHistoryId+"' name='keywordSearch'>"+obj[i].keywordSearch+"</li>";
html+="<li>"+obj[i].searchTime+"</li>";
html+="<input type='hidden' id='saved' name='saved' value='"+obj[i].saved+"'>";
debugger;
html+="<input type='button' name='updateSearch' onclick='statusUpdate("+obj[i].toString()+");' value='delete save'>";
}
$("#userSave").append(html);
}
);
}
function statusUpdate(obj){
console.log(obj);
debugger;
obj={
'userId':userId,
'companyId':companyId,
'groupId':groupId,
'keywordSearch':'"'+keywordSearch+'"',
'updatedOn':updatedOn,
'saved':saved,
'query':'"'+query+'"'
}
Liferay.Service(
'/MyLibrary_ServiceBuilder-portlet.searchhistory/update-to-search-history',
{
strSearchHistory: obj
},
function(obj) {
console.log(obj);
}
);
}
当你添加代码onclick='statusUpdate("+obj[i].toString()+");'
时,obj[i] 是一个对象,调用 toString () 返回一个字符串 "[object Object ]"而不是序列化的对象。
JSON.stringify(testeObj)
或
obj={
'userId':userId,
'companyId':companyId,
'groupId':groupId,
'keywordSearch':'"'+keywordSearch+'"',
'updatedOn':updatedOn,
'saved':saved,
'query':'"'+query+'"'
}
代码段'userId':userId
,尚未在上下文中定义 userId 变量。
我希望我有所帮助。