Passing one parameter (report.id) to removeUser function works fine, but when I want to pass two parameter (report.id and report.name) I get Uncaught SyntaxError: Invalid or unexpected token.
I tried '(" report.id "," report.name ")'
I tried '(" report.id report.name ")'
but none works, what I am doing wrong here
$.ajax({
url: "xxx",
type: "GET",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (result) {
var html = '';
$.each(result, function (key, report) {
html = '<tr>';
html = '<td>' report.id '</td>';
html = '<td>' report.name '</td>';
html = "<td><a onClick='removeUser(" report.id report.name ")'" "'> Remove </a></td>";
html = '</tr>';
});
$('#users').html(html);
},
function removeUser(id, name) {
alert("ID: " id "Name: " name)
}
CodePudding user response:
You need commas between the parameters, and you need quotes only around report.name
.
It's much easier to write this using a template literal rather than concatenation.
html = `<td><a href="#" onClick='removeUser(${report.id}, "${report.name}")'> Remove </a></td>`;
Also, since you're doing this with an a
element, you should set its href
so it doesn't try to link to another page after running the onclick
function.