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

时间:2015-06-21 04:06:41

标签: javascript html

"<button onclick=editRecords('" + partId + "')>Add Quantity</button>";

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

  

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

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

5 个答案:

答案 0 :(得分:6)

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

"<button onclick=editRecords('" + encodeURIComponent(partId) + "')>Add Quantity</button>";

答案 1 :(得分:4)

我宁愿更改引号的组织以获得更清晰的代码。这将使其更具可读性和更传统(在我看来):

&#13;
&#13;
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;
&#13;
&#13;
&#13;

更常规的是遵循Felix Kling's wisdom(最后一行)。

答案 2 :(得分:3)

如果HTML属性值应包含空格,则必须使用引号来分隔值。

请注意语法高亮:

<span foo=bar baz ></span>

这是属性foo,其值为"bar",布尔属性为baz

另一方面,这个

<span foo="bar baz"></span>

是属性foo,其值为"bar baz"。请注意baz如何以不同方式突出显示?

要解决您的问题,请在onclick或更好的use a different way to bind the event handler附近加上引号。

答案 3 :(得分:0)

我建议这是最好的选择。您可以设置任何所需的属性。

    $makesforsearch = Post::select('make_id')->distinct()->pluck('make_id');

答案 4 :(得分:0)

带空格的字符串参数

<input type="button" onClick="return myFunction('10', 'your text hear')" />



带空格的PHP字符串变量

<input type="button" onClick="return myFunction('<?php echo $id ?>', '<?php echo $designation ?>')" />
  

JS函数

function setVisibility(id, designation) {...your js code hear...}