在javascript的onclick函数中将参数作为包含空格的字符串传递

Gur*_*der 3 html javascript

"<button onclick=editRecords('" + partId + "')>Add Quantity</button>";
Run Code Online (Sandbox Code Playgroud)

如果我传递的partId字符串没有空格,它工作正常.但如果我通过'MRF 01',它就会给我

未捕获的SyntaxError:意外的标记ILLEGAL.

为什么这样,我该如何解决?

Unn*_*abu 7

&nbsp;将空格作为函数参数传递时使用.如果使用js生成onclick,请使用encodeURIComponent.

"<button onclick=editRecords('" + encodeURIComponent(partId) + "')>Add Quantity</button>";
Run Code Online (Sandbox Code Playgroud)


lea*_*eaf 6

从海报本人。这是一个主要基于意见的答案,使用单引号没有任何常规用法(我发现了C语法,现在我更喜欢双引号...)。

我宁愿更改引号的组织以便获得更简洁的代码。从我的角度来看,这将使其更具可读性和常规性:

var msg = 'Sometimes SO looks like a McDonalds drive through.';
var html = '<button onclick="clickHandler(\'' + msg + '\')">click me</button>';
function clickHandler (msg) { alert(msg); }
document.body.innerHTML = html;
Run Code Online (Sandbox Code Playgroud)

更为传统的做法是遵循Felix Kling的智慧(最后一行)。